๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๊ฐ“์ƒ ์ง์žฅ์ธ ๋‚จ๋ฐ”์˜ค
article thumbnail

https://school.programmers.co.kr/learn/courses/30/lessons/150369

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๋ฌธ์ œ ํ•ด๊ฒฐ

์ฒ˜์Œ์—๋Š” ์ด๊ฑธ deliveries๋ฅผ ํ•œ ๋ฒˆ ํ›‘๊ณ  ๋‚œ ๋‹ค์Œ์— pickups์„ ๋˜ ๋‹ค์‹œ ํ›‘์–ด์•ผ๋˜๋‚˜ ๊ณ ๋ฏผ์ด ๋˜์—ˆ๋Š”๋ฐ,

์˜ˆ์‹œ๋ฅผ ๋ณด๋‹ค๋ณด๋‹ˆ ํžŒํŠธ๋ฅผ ์–ป์—ˆ๋‹ค.

๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ๋จผ ๊ณณ๋ถ€ํ„ฐ ์ญ‰ ๋ณด๋ฉด์„œ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ greedy๋กœ ํ’€์—ˆ๋”๋‹ˆ

๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

while๋ฌธ์€ ํƒ๋ฐฐ๋ฅผ ํ•œ ๋ฒˆ์— ์ˆ˜๊ฑฐํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ์— cnt๋ฅผ ๋Š˜๋ ค์ฃผ๋ฉด์„œ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ๋Š” ์ฝ”๋“œ์ด๋‹ค.

 

์ฝ”๋“œ

def solution(cap, n, deliveries, pickups):
    answer = 0
    deliver, pickup = 0, 0
    
    for i in range(n-1, -1, -1):
        if deliveries[i] != 0 or pickups[i] != 0:
            cnt = 0
            while (deliver < deliveries[i] or pickup < pickups[i]):
                cnt += 1
                deliver += cap
                pickup += cap
            
            deliver -= deliveries[i]
            pickup -= pickups[i]
            answer += ((i+1) * cnt * 2)
            
    return answer

'Coding' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ Programmers ] ๋‘ ํ ํ•ฉ ๊ฐ™๊ฒŒ ๋งŒ๋“ค๊ธฐ  (0) 2023.07.21
[Softeer] ๋ฐ”์ด๋Ÿฌ์Šค  (0) 2023.06.01
[Softeer] GBC  (0) 2023.05.30
[Softeer] ๊ธˆ๊ณ ํ„ธ์ด  (0) 2023.05.29
[Softeer] ์ง€๋„ ์ž๋™ ๊ตฌ์ถ•  (0) 2023.05.24
profile

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๊ฐ“์ƒ ์ง์žฅ์ธ ๋‚จ๋ฐ”์˜ค

@๋‚จ๋ฐ”์˜ค