DevYoon

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํƒ๋ฐฐ ๋ฐฐ๋‹ฌ๊ณผ ์ˆ˜๊ฑฐํ•˜๊ธฐ (Python) ๋ณธ๋ฌธ

PS/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํƒ๋ฐฐ ๋ฐฐ๋‹ฌ๊ณผ ์ˆ˜๊ฑฐํ•˜๊ธฐ (Python)

gimewn 2023. 2. 1. 22:52

link ๐Ÿ”— https://school.programmers.co.kr/learn/courses/30/lessons/150369

 

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

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

programmers.co.kr

 

๐Ÿ”ฅ ๊ฐ์ด ์ž˜ ์˜ค์ง€ ์•Š์•„์„œ ์กฐ๊ธˆ ํ—ค๋งธ๋˜ ๋ฌธ์ œใ… ใ…œ ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ดํ•ดํ•ด๋ณด๊ณ , ์ง์ ‘ ์ž‘์„ฑํ•ด๋ณด๋Š” ์ˆœ์œผ๋กœ ๊ณต๋ถ€ํ•˜์˜€๋‹ค.

๐Ÿ”ฅ ๊ธฐ์–ตํ•ด์•ผ ํ•  ํฌ์ธํŠธ โžก๏ธ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋กœ ๋‹ค๋…€์˜ค๋ ค๋ฉด ์ œ์ผ ๋จผ ๊ณณ๋ถ€ํ„ฐ ๋‹ค๋…€์™€์•ผ ํ•œ๋‹ค!

 

def solution(cap, n, deliveries, pickups):
    answer = 0
    # ๋ฐฐ๋‹ฌ๊ณผ ์ˆ˜๊ฑฐ ๊ฐ€๋Šฅ ๊ณต๊ฐ„
    d, p = 0, 0
    
    for idx in range(n-1, -1, -1):
        # ํ•ด๋‹น ์ง‘์—์„œ ๋ฐฐ๋‹ฌ๊ณผ ์ˆ˜๊ฑฐ ์‹คํ–‰
        d += deliveries[idx]
        p += pickups[idx]
        
        while d > 0 or p > 0:
            # d๋‚˜ p๊ฐ€ ์–‘์ˆ˜๋ผ๋ฉด => ์—ฌ์œ ๊ณต๊ฐ„ ์—†์Œ => ์ฐฝ๊ณ  ๋“ค๋ ธ๋‹ค ์™€์•ผ ํ•จ
            # d๋‚˜ p๊ฐ€ ์Œ์ˆ˜๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ => ์—ฌ์œ ๊ณต๊ฐ„์ด ์ƒ๊ธธ ๋•Œ๊นŒ์ง€ ์™”๋‹ค๊ฐ”๋‹ค
            d -= cap
            p -= cap
            answer += (idx+1)*2
        
    return answer