LV. 2 ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ
def solution(bridge_length, weight, truck_weights):
time = 0
bridge = [0 for _ in range(bridge_length)]
# bridge์ ์ ํ ์ ๋งํผ ์ ์ธ
bridge_w = 0 # ํ์ฌ ๋ค๋ฆฌ ์์ ํธ๋ญ ๋ฌด๊ฒ ์ธก์ ํ ๋ ์ฌ์ฉ
while bridge:
time += 1
bridge_w -= bridge.pop(0) # 0์ ๋ฃ์ด์ฃผ๊ธฐ ๋๋ฌธ์ - ๊ฐ๋ฅ
if truck_weights:
# ํธ๋ญ์ด ๋ค ์ง๋๊ฐ๋ฉด ๋จ์ bridge๋ฅผ ์ ๊ฑฐ๋ง ํด์ค๋ค.
if bridge_w + truck_weights[0] <= weight:
# ๋ค์ ํธ๋ญ์ ๋ฌด๊ฒ์ ํ์ฌ ๋ค๋ฆฌ์ ํธ๋ญ๋ค์ ๋ฌด๊ฒ ํฉ์ด ์ ํ์
# ๋๋ ์ง ํ์ธ
t = truck_weights.pop(0)
bridge.append(t) # ๋ค๋ฆฌ์ ํธ๋ญ์ ์ถ๊ฐ
bridge_w += t
else:
bridge.append(0)
# ๋๊ธฐ ์ค์ธ ํธ๋ญ์ด ์์ผ๋ฉด bridgeํฌ๊ธฐ๋ฅผ ์ ํ ๊ธธ์ด๋งํผ ์ ์ง
return time
๊ฒ์์ ํตํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋๋ฐ ๋ฌด๊ฒ๋ฅผ ํ์ธํ๋ ์กฐ๊ฑด์์
SUM์ ์ฐ๋ฉด ํ
์คํธ5๋ฒ์์ ์๊ฐ์ด๊ณผ๊ฐ ๊ฑธ๋ฆฌ๋ ๊ฒ์ ํ์ธํ์์ต๋๋ค.
๊ทธ๋์ ๋ฐ๋ก ๋ฌด๊ฒ๋ฅผ ์ธก์ ํ๋ ๋ณ์๋ฅผ ๋์ด์ ์กฐ๊ฑด์ ์ ์ฉํ์์ต๋๋ค.