๐ ๋ฐฑ์ค 13335 - ํธ๋ญ
โก๏ธ ๋์ ํ์ด
๋ฌธ์ ๋ถ๋ฅ๋ ์๋ฎฌ๋ ์ด์ ์ด์๋๋ฐ ์ค์ ๋ก ์ผ์ด๋ ์ ์๋ ์ผ์ ์ฝ๋๋ก ๊ตฌํ ํ๋๊น ํฅ๋ฏธ๋ก์ ๋ค. ๋, ์ค๋ฒ 1์์๋ ๋ถ๊ตฌํ๊ณ ๋ฌธ์ ๊ฐ ์ด๋ ค์ ๋๋ฐ ๊ตฌํ ์กฐ๊ฑด์ด ์๊ฐ๋ณด๋ค ๊น๋ค๋ก์ ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฌธ์ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ํ์ฌ ๋ค๋ฆฌ(bridge)๋ฌด๊ฒ + ๋์ด ์ฌ ํธ๋ญ์ ๋ฌด๊ฒ๊ฐ ๋ค๋ฆฌ ํ์ค๋ณด๋ค ์์ผ๋ฉด ๋์ด ์ฌ ์ ์๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ๋์ด ์ฌ ์ ์๋ค.
- ๋ค๋ฆฌ๊ธธ์ด๋ฅผ ์ง๋ ํธ๋ญ์ ๋ค๋ฆฌ๋ฅผ ๋ฒ์ด๋๋ค.(pop) ์ด๋, ํ์ฌ ๋ค๋ฆฌ๋ฌด๊ฒ๋ ๋ฐฉ๊ธ ๋ค๋ฆฌ๋ฅผ ๋ฒ์ด๋ ํธ๋ญ์ ๋ฌด๊ฒ๋ฅผ ๋นผ์ค์ผ ํ๋ค.
- ๋ค๋ฆฌ์ ํธ๋ญ์ด ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
1๋ฒ ์กฐ๊ฑด
์ ์ ์๊ฐํ๋๋ฐ 2๋ฒ ์กฐ๊ฑด
์์ ํธ๋ญ์ด ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๊ฐ๊ณ ๋์ ํธ๋ญ์ ๋ฌด๊ฒ๋งํผ ํ์ฌ weight
๋ฅผ ๋นผ์ค ์๊ฐ์ ๋ชปํด์ ์ค๋ตํ์ ์ ๋ฐ์๋ค. ๋ํ if trucks:
์กฐ๊ฑด์ ๊ฑธ์ด๋์ผ bridge
๊ฐ ์์ ๋๊น์ง ๋ฐ๋ณตํ๋๋ฐ ํด๋น ์กฐ๊ฑด๋ฌธ์ ๋ฃ์ด์ฃผ์ง ์์ index
์ค๋ฅ๊ฐ ์๊พธ ๋ฌ๋ค.
๋ค๋ฅธ์ฌ๋์ ์ฝ๋๋ฅผ๋ณด๋๊น ๋ด๊ฐ ์ฒ์ ์๋ํ ๋ฐฉ์์ผ๋ก ํ์๋๋ฐ, ๋ต์ด ์๊พธ ์๋์จ ์ด์ ๊ฐ ๊ฐ๋จํ ์กฐ๊ฑด๋ฌธ์ ์ถ๊ฐํด์ฃผ์ง ์์์์๋ค. ์กฐ๊ฑด์ ๋ ๋ฐ์ ธ๋ณผ ์ ์๋ ๋ฅ๋ ฅ์ ๊ธธ๋ฌ์ผ๊ฒ ๋ค.
# ๋์ ์ฝ๋
n, w, l = map(int, input().split())
trucks = list(map(int, input().split()))
bridge = [0] * w # w๋งํผ ๋ค๋ฆฌ ๊ธธ์ด ์ ์ธ
weight, time = 0, 0 # ํ์ฌ ๋ค๋ฆฌ์์ ๋ฌด๊ฒ, ์๊ฐ ์ ์ธ
while True:
out = bridge.pop(0) # ๋ฐฉ๊ธ ๋ค๋ฆฌ๋ฅผ ๊ฑด๋ ํธ๋ญ์ ๋ค๋ฆฌ์์ ์ ๊ฑฐํด์ผํ๋ค.
weight -= out # ๋ฐฉ๊ธ ๋ค๋ฆฌ ๋ค๋ฆฌ๋ฅผ ๊ฑด๋ ํธ๋ญ์ ๋ฌด๊ฒ๋ฅผ weight์์ ๋นผ์ค์ผ ๋ค์ ํธ๋ญ์ด ๋์ด ์ฌ ์ ์๋ค.
if trucks: # ๋์ด ์ฌ ํธ๋ญ์ด ๋จ์์์ ๋
if weight + trucks[0] <= l: # ๋ค๋ฆฌ ํ์ค์ ๊ฒฌ๋ ์ ์์ผ๋ฉด
bridge.append(trucks[0]) # ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ค๋ ํธ๋ญ
weight += trucks[0] # weight์ ํ์ฌ ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ค๋ ํธ๋ญ ๋ฌด๊ฒ ์ถ๊ฐ
trucks.pop(0)
else: # ๋ค๋ฆฌ ํ์ค์ ๊ฒฌ๋ ์ ์์ผ๋ฉด
bridge.append(0) # 0์ ์ถ๊ฐํ์ฌ ๋ค๋ฆฌ์์ ์๋ ํธ๋ญ์ ๋จผ์ ๋ณด๋ธ๋ค.
time += 1 # ์กฐ๊ฑด๊ณผ ์๊ด์์ด ์๊ฐ์ ํ๋ฌ๊ฐ๋ค.
if not bridge: # ๋ค๋ฆฌ์์ ํธ๋ญ์ด ๋ค ์ง๋๊ฐ๋ฉด ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
break
print(time)
# ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋
n, w, l = map(int, input().split())
trucks = list(map(int, input().split()))
bridge = [0] * w
time = 0
while bridge:
time += 1
bridge.pop(0)
if trucks:
if sum(bridge) + trucks[0] <= l:
bridge.append(trucks.pop(0))
else:
bridge.append(0)
print(time)
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 17608 - ๋ง๋๊ธฐ (2) | 2021.06.28 |
---|---|
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1021 - ํ์ ํ๋ ํ (0) | 2021.06.27 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1966 - ํ๋ฆฐํฐ ํ (0) | 2021.06.24 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 2563 - ์์ข ์ด (0) | 2021.06.23 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 4458 - ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก (0) | 2021.06.22 |
๋๊ธ