๋ฌธ์ ์ค๋ช
ํธ๋ญ ์ฌ๋ฌ ๋๊ฐ ๊ฐ์ ๊ฐ๋ก์ง๋ฅด๋ ์ผ์ฐจ์ ๋ค๋ฆฌ๋ฅผ ์ ํด์ง ์์ผ๋ก ๊ฑด๋๋ ค ํฉ๋๋ค. ๋ชจ๋ ํธ๋ญ์ด ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ค๋ฉด ์ต์ ๋ช ์ด๊ฐ ๊ฑธ๋ฆฌ๋์ง ์์๋ด์ผ ํฉ๋๋ค. ๋ค๋ฆฌ์๋ ํธ๋ญ์ด ์ต๋ bridge_length๋ ์ฌ๋ผ๊ฐ ์ ์์ผ๋ฉฐ, ๋ค๋ฆฌ๋ weight ์ดํ๊น์ง์ ๋ฌด๊ฒ๋ฅผ ๊ฒฌ๋ ์ ์์ต๋๋ค. ๋จ, ๋ค๋ฆฌ์ ์์ ํ ์ค๋ฅด์ง ์์ ํธ๋ญ์ ๋ฌด๊ฒ๋ ๋ฌด์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ํธ๋ญ 2๋๊ฐ ์ฌ๋ผ๊ฐ ์ ์๊ณ ๋ฌด๊ฒ๋ฅผ 10kg๊น์ง ๊ฒฌ๋๋ ๋ค๋ฆฌ๊ฐ ์์ต๋๋ค. ๋ฌด๊ฒ๊ฐ [7, 4, 5, 6]kg์ธ ํธ๋ญ์ด ์์๋๋ก ์ต๋จ ์๊ฐ ์์ ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ฑด๋์ผ ํฉ๋๋ค.
๋ฐ๋ผ์, ๋ชจ๋ ํธ๋ญ์ด ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ค๋ฉด ์ต์ 8์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ๋ค๋ฆฌ์ ์ฌ๋ผ๊ฐ ์ ์๋ ํธ๋ญ ์ bridge_length, ๋ค๋ฆฌ๊ฐ ๊ฒฌ๋ ์ ์๋ ๋ฌด๊ฒ weight, ํธ๋ญ ๋ณ ๋ฌด๊ฒ truck_weights๊ฐ ์ฃผ์ด์ง๋๋ค. ์ด๋ ๋ชจ๋ ํธ๋ญ์ด ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ค๋ฉด ์ต์ ๋ช ์ด๊ฐ ๊ฑธ๋ฆฌ๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์กฐ๊ฑด
- bridge_length๋ 1 ์ด์ 10,000 ์ดํ์ ๋๋ค.
- weight๋ 1 ์ด์ 10,000 ์ดํ์ ๋๋ค.
- truck_weights์ ๊ธธ์ด๋ 1 ์ด์ 10,000 ์ดํ์ ๋๋ค.
- ๋ชจ๋ ํธ๋ญ์ ๋ฌด๊ฒ๋ 1 ์ด์ weight ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
ํ์ด ์ฝ๋
from collections import deque
def solution(bridge_length, weight, truck_weights):
answer = 0
bridge_queue = deque()
wait_queue = deque(truck_weights)
while wait_queue or bridge_queue:
if wait_queue and weight >= wait_queue[0]:
truck = wait_queue.popleft()
weight -= truck
bridge_queue.append([truck, bridge_length])
answer += 1
for i in range(len(bridge_queue)):
bridge_queue[i][1] -= 1
while bridge_queue and bridge_queue[0][1] == 0:
w, _ = bridge_queue.popleft()
weight += w
return answer+1
ํ ์๋ฃ๊ตฌ์กฐ ๋ ๊ฐ๋ฅผ ์ฌ์ฉํด์ ํ์ดํ๋ค.
๋ค๋ฆฌ์ ์ง์ ํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ / ๋ค๋ฆฌ์ ์๋ ํ ๋ ํ ๋ชจ๋ ์ฐจ๊ฐ ์์ผ๋ฉด ๋ค ์ง๋ ๊ฒ์ผ๋ก ํ๋จํ๋ฉด ๋๋ค.
๋๊ธฐ ์ฐจ๋์ด ์๊ณ , ๊ฐ์ฅ ์ ์ฐจ๋์ด ๋ค๋ฆฌ๊ฐ ๋ฒํธ ์ ์๋ ํ๋๋ฅผ ๋์ง ์๋ ๋ฌด๊ฒ๋ฅผ ๊ฐ๋๋ค๋ฉด
๋๊ธฐ ํ์์ ๊บผ๋ด๊ณ ๋ค๋ฆฌ ํ์ ๋ฃ๊ณ , ๋ฌด๊ฒ๋ฅผ ๊ฐฑ์ ํ๋ค.
๊ทธ ํ ์๊ฐ์ 1์ด ๋๋ ค์ค๋ค.
๋ค๋ฆฌ ํ์ ์๋ ๋ชจ๋ ์ฐจ๋์ ๋ํด ๋ค๋ฆฌ์ ์์๋ ์๊ฐ์ ๊ฐฑ์ ํด์ค๋ค.
๊ทธ ์ดํ, ๋ค๋ฆฌ ํ์ ์ฐจ๋์ด ์๊ณ , ๋ค๋ฆฌ ํ ๊ฐ์ฅ ์์ ์ฐจ๋์ ์๊ฐ์ด 0์ผ๋ก ๋ณํ๋ค๋ฉด ๋ค๋ฆฌ์ bridge_length์ด ๋งํผ ์์๋ ๊ฒ์ด๋ฏ๋ก
๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ค๊ณ ํ๋จํ๋ค.
๋ค๋ฆฌ ํ์ ์์๋ฅผ ํ๋ ๊บผ๋ด๊ณ , ๋ค๋ฆฌ๊ฐ ๋ฒํธ ์ ์๋ ๋ฌด๊ฒ๋ฅผ ๋ค์ ๊ฐฑ์ ํ๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] 2xn ํ์ผ๋ง (level2, python) (0) | 2022.09.19 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] 2๊ฐ ์ดํ๋ก ๋ค๋ฅธ ๋นํธ (level2, python) (0) | 2022.09.19 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ (level2, python) (1) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ชจ์์ฌ์ (level2, python) (1) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ (level2, python) (0) | 2022.09.13 |