ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จ๐ป ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
ํ๋ก๊ทธ๋๋จธ์ค: ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ
dirmathfl 2020. 9. 2. 15:57728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
ํธ๋ญ ์ฌ๋ฌ ๋๊ฐ ๊ฐ์ ๊ฐ๋ก์ง๋ฅด๋ ์ผ ์ฐจ์ ๋ค๋ฆฌ๋ฅผ ์ ํด์ค ์์ผ๋ก ๊ฑด๋๋ ค๊ณ ํ ๋, ๋ค๋ฆฌ์ ์ฌ๋ผ๊ฐ ์ ์๋ ๋ฌด๊ฒ ์ ํ์ด ์๋ค. ํธ๋ญ์ 1์ด์ ๋ค๋ฆฌ ํ ์นธ์ ์ง๋๊ฐ ๋, ๋ชจ๋ ํธ๋ญ์ด ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๋ก์ง์ ์์ฑํ๋ฉด ๋๋ค.
- q์ ์ด๊ธฐ ๊ฐ์ 0์ผ๋ก ๋ค๋ฆฌ ๊ธธ์ด๋งํผ ์ฑ์ด๋ค.
- ๋ค๋ฆฌ์ ์ฌ๋ผ๊ฐ ์ ์๋ ํธ๋ญ์ ํ์ ํ๊ธฐ ์ํด, ํ์ฌ ๋ค๋ฆฌ์ ๋ฌด๊ฒ๋ฅผ ๊ณ์ฐํ๋ค.
-
์ฒซ ํธ๋ญ๋ถํฐ ๋ค๋ฆฌ ์์ ์ฌ๋ผ๊ฐ ์ ์๋์ง ํ์ธํ๊ณ , ์ฌ๋ผ๊ฐ ์ ์๋ค๋ฉด ํด๋น ํธ๋ญ์ ๋ฌด๊ฒ๋ฅผ ํ์ ์ถ๊ฐํ๋ค.
- ๋ฐ๋์ ๊ฒฝ์ฐ ํธ๋ญ์ ๋ฌด๊ฒ๊ฐ ์๋, 0์ ์ถ๊ฐํ์ฌ ์๊ฐ์ ๊ณ์ฐํ ์ ์๋๋ก ํ๋ค.
- Queue๊ฐ ๋น ๋๊น์ง ํด๋น ์์ ์ ๋ฐ๋ณตํ๋ฉด, ๋ฌด๊ฒ์ ๋ฐ๋ผ ๋ช ์ด์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋์ง ์ ์ ์๋ค.
์ฝ๋
from collections import deque
def solution(bridge_length, weight, truck_weights):
answer, bridge_weight = 0, 0
truck_weights = truck_weights[::-1]
q = deque([0] * bridge_length)
while q:
answer += 1
bridge_weight -= q.popleft()
if truck_weights:
if bridge_weight + truck_weights[-1] <= weight:
q.append(truck_weights.pop())
bridge_weight += q[-1]
else:
q.append(0)
return answer
pop(0)๋ฅผ ํ๋ ๊ฒ์ด pop()๋ณด๋ค ์ค๋ฒํค๋๊ฐ ํฌ๊ธฐ์, ํธ๋ญ์ ๋ฌด๊ฒ๋ฅผ ๋ฐ์ ์ํจ ํ pop()์ ์ฌ์ฉํ์ฌ ํธ๋ญ์ ๋ฌด๊ฒ๋ฅผ ๊ฐ์ ธ์ค๋๋ก ํ์๋ค.
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ์ฃผ์๊ฐ๊ฒฉ (0) | 2020.09.03 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: ์คํฌํธ๋ฆฌ (0) | 2020.09.02 |
ํ๋ก๊ทธ๋๋จธ์ค: ๊ฐ์ฅ ๋จผ ๋ ธ๋ (0) | 2020.09.02 |
ํ๋ก๊ทธ๋๋จธ์ค: ์ฌ ์ฐ๊ฒฐํ๊ธฐ (0) | 2020.09.02 |
ํ๋ก๊ทธ๋๋จธ์ค: ๋ ๋ฐ๋จน๊ธฐ (0) | 2020.09.01 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ