https://school.programmers.co.kr/learn/courses/30/lessons/150369
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
d_temp, p_temp ๋ณ์๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ์ง์ ๋์์๋ถํฐ ๋๋ฉด์ ํ๋ฐฐ๋ฅผ ๋ฐฐ๋ฌ/์๊ฑฐํ๋ ๋๋ก ๊ฐ์ ์ฆ๊ฐ์์ผฐ๋ค.
๋ ๋ณ์๊ฐ cap๋ณด๋ค ํฌ๋ค๋ฉด for๋ฌธ์ ๋ฉ์ถ๊ณ n๊ฐ์ ๊ฐฑ์ ํ์ฌ ๋ค์ ๋ฐ๋ณต๋ฌธ์ ๋๋๋ก ํด์ฃผ์๋ค.
# ์คํจ
# ํ๋ก๊ทธ๋๋จธ์ค 150369: ํ๋ฐฐ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐํ๊ธฐ (2023 KAKAO BLIND RECRUITMENT)
def solution(cap, n, deliveries, pickups):
answer = 0
while n >= 1:
d_temp = 0
p_temp = 0
answer += n * 2
for i in range(n-1, -1, -1):
d_temp += deliveries[i]
p_temp += pickups[i]
if d_temp > cap:
deliveries[i] = d_temp - cap
n = i + 1
break
if p_temp > cap:
pickups[i] = p_temp - cap
n = i + 1
break
else:
return answer
return answer
ํ ์คํธ์ผ์ด์ค๋ ๋ค ๋ง์๋๋ฐ, ์ฑ์ ๊ฒฐ๊ณผ๋ 10์ ์ด์๋ค (..ใ )
๋งจ ๋ง์ง๋ง ์ง์ ๋ฐฐ๋ฌ/์๊ฑฐํ ํ๋ฐฐ๊ฐ ์๋ค๋ฉด ํ๋ฆฐ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๋ ๊ฑธ ๊นจ๋ซ๊ณ ,
ํด๋น ์กฐ๊ฑด์ผ ๋ n๊ฐ์ ๊ฐ์์ํค๋ ๋ถ๋ถ์ ์ถ๊ฐํ๋ค.
# ์คํจ
# ํ๋ก๊ทธ๋๋จธ์ค 150369: ํ๋ฐฐ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐํ๊ธฐ (2023 KAKAO BLIND RECRUITMENT)
def solution(cap, n, deliveries, pickups):
answer = 0
while deliveries[n-1] == 0 and pickups[n-1] == 0:
n -= 1
while n >= 1:
d_temp = 0
p_temp = 0
answer += n * 2
for i in range(n-1, -1, -1):
d_temp += deliveries[i]
p_temp += pickups[i]
if d_temp > cap:
deliveries[i] = d_temp - cap
n = i + 1
break
if p_temp > cap:
pickups[i] = p_temp - cap
n = i + 1
break
else:
return answer
return answer
๊ทธ๋ฆฌ๊ณ ๋ฐํ์ ์๋ฌ๊ฐ ๋ด๋ค. ใ ใ ;;
๊ทธ๋์ ์ง๋ฌธํ๊ธฐ ๊ฒ์ํ์ ๋ณด๊ณ ,,, ๋๋ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฐพ์๋ค.
๋งจ ๋ง์ง๋ง ์ง์์๋ถํฐ ์์ํด์ ํด๋น ์ง์ ๋ฐฉ๋ฌธํ ๋
๋ชจ๋ ํ๋ฐฐ๊ฐ ๋ฐฐ๋ฌ/์๊ฑฐ๋ ๋๊น์ง while๋ฌธ์ ๋๋ ค ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฐ ํ์๋ฅผ ๊ณ์ฐํ์ฌ ํด๋น ๊ฐ์ ๊ณฑํด์ค๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ง์ง๋ง ์ง์ ํ๋ฐฐ๊ฐ ์์ ๋์ ์ผ์ด์ค๋ ์ก์๋ผ ์ ์๋ค.
# ํ๋ก๊ทธ๋๋จธ์ค 150369: ํ๋ฐฐ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐํ๊ธฐ (2023 KAKAO BLIND RECRUITMENT)
def solution(cap, n, deliveries, pickups):
answer = 0
d_temp = 0
p_temp = 0
for i in range(n-1, -1, -1):
cnt = 0
d_temp += deliveries[i]
p_temp += pickups[i]
while d_temp > 0 or p_temp > 0:
d_temp -= cap
p_temp -= cap
cnt += 1
answer += cnt * (i+1) * 2
return answer
๐ ๋ด๊ฐ ์ผ๋ ํ ์คํธ์ผ์ด์ค