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 |