๋ฐ์ํ
๋ฌธ์ ๋งํฌ
https://programmers.co.kr/learn/courses/30/lessons/42583
๋์ ํ์ด
- ์ผ๋จ, ํ ์คํธ์ผ์ด์ค๋ฅผ ์ดํดํ๋๋ฐ ์๊ฐ์ด ์ข ๊ฑธ๋ฆผ
- ํธ๋ญ ํ๋๊ฐ ์ด๋ํ ๋๋ ๋ฌด์กฐ๊ฑด 1์ด๊ฐ ์ง๋๊ณ , 1์ด ์์ ๋ ๋์ ํธ๋ญ์ ์์ง์ด์ง ์์
- ๊ทธ๋ฆฌ๊ณ ๋ค๋ฆฌ ๊ธธ์ด๊ฐ 10์ด๋ฉด, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ๋ก ๊ตฌ์ฑ๋์ด์์.
- ํธ๋ญ ใ
๊ฐ ํด๋น ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ค๋ฉด
- 1์ด [0, 0, 0, 0, 0, 0, 0, 0, 0, ใ ]
- 2์ด [0, 0, 0, 0, 0, 0, 0, 0, ใ , 0]
- 3์ด [0, 0, 0, 0, 0, 0, 0, ใ , 0, 0]
- 4์ด [0, 0, 0, 0, 0, 0, ใ , 0, 0, 0] .... ์ด๋ ๊ฒ ์ง๋๊ฒ๋์ ๋ค๋ฆฌ๋ฅผ ๋ชจ๋ ์ง๋๋๋ฐ 10์ด๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋จ.
- ๋ฐ๋ผ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ ๋๋ 0์ ๋ฃ์ด๊ฐ๋ฉด์ ๋๋ ค์ค.
def s(bridge_length, weight, truck_weights):
crossing = [0] * bridge_length #๊ฑด๋๋์ค ์ด๊ฑฐ๋ weight ์กฐ๊ฑด์ ๋ฌ์ผํจ
time = 0
escape = []
total_truck = sum(truck_weights)
while True:
time += 1
temp = crossing.pop(0)
if temp != 0 :
escape.append(temp)
else:
pass
if truck_weights: #์์ ๊ฐ์ด ํ๋๋ผ๋ ์์ผ๋ฉด ์กฐ๊ฑด๋ฌธ ๋์๊ฐ
#๋ง์ฝ์ truck_weights์ ๊ฐ์ด ์๋ ์ํ๋ผ๋ฉด,
#์๊ฐ +1 ํ๊ณ , ์์ pop๋ง ์ํด์ฃผ๋ฉด ๋์ ์๊ด์๊ตฌ๋ ์์ฐ
if sum(crossing) + truck_weights[0] <= weight:
crossing.append(truck_weights.pop(0))
else:
crossing.append(0)
if total_truck == sum(escape):
break
return time
๋ค๋ฅธ์ฌ๋ํ์ด
https://programmers.co.kr/learn/courses/30/lessons/42583/solution_groups?language=python3
ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ํผ ํ์ด๊ฐ ์ธ์๊น์๋ค.
๊ทธ๋ฆฌ๊ณ , ์๊ฐ์ ํจ์จ์ด ๋จ์ด์ง๋ deque๋ฅผ ํ์ฉํด์ ํ๋ฉด ์ด๋จ์ง ์๊ฐํด๋ณด์๋ค.
๋ฐ์ํ
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ (์นด์นด์ค, level.2) (0) | 2021.09.16 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] 124๋๋ผ์ ์ซ์ (level.2) (0) | 2021.09.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ-๋ ๋งต๊ฒ (level.2) (0) | 2021.09.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ,ํ - ๊ธฐ๋ฅ๊ฐ๋ฐ (level.2) (0) | 2021.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๋ ฌ - H-Index (level.2) (0) | 2021.09.09 |