๋ฌธ์ ๋งํฌ
https://programmers.co.kr/learn/courses/30/lessons/42583
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ
ํธ๋ญ ์ฌ๋ฌ ๋๊ฐ ๊ฐ์ ๊ฐ๋ก์ง๋ฅด๋ ์ผ์ฐจ์ ๋ค๋ฆฌ๋ฅผ ์ ํด์ง ์์ผ๋ก ๊ฑด๋๋ ค ํฉ๋๋ค. ๋ชจ๋ ํธ๋ญ์ด ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ค๋ฉด ์ต์ ๋ช ์ด๊ฐ ๊ฑธ๋ฆฌ๋์ง ์์๋ด์ผ ํฉ๋๋ค. ๋ค๋ฆฌ์๋ ํธ๋ญ์ด ์ต๋ bridge_length๋ ์ฌ๋ผ๊ฐ
programmers.co.kr
๋์ ํ์ด
- ์ผ๋จ, ํ ์คํธ์ผ์ด์ค๋ฅผ ์ดํดํ๋๋ฐ ์๊ฐ์ด ์ข ๊ฑธ๋ฆผ
- ํธ๋ญ ํ๋๊ฐ ์ด๋ํ ๋๋ ๋ฌด์กฐ๊ฑด 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
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ํผ ํ์ด๊ฐ ์ธ์๊น์๋ค.
๊ทธ๋ฆฌ๊ณ , ์๊ฐ์ ํจ์จ์ด ๋จ์ด์ง๋ 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 |