문제출처
https://school.programmers.co.kr/learn/courses/30/lessons/42583
문제를 스스로 해결하였는가? -> X
처음 문제를 읽었을 땐 쉽다고 생각했는데 착각이였다. 꽤 오래 고민했지만 스스로 풀지 못하고 결국 다른 사람의 소스코드를 참고했다. 다리를 지나는 트럭을 비어있는 큐에서 시작했던게 실패의 원인이였다. 참고해서 다시 풀었지만 시간초과... 반복문마다 sum()함수를 쓸 필요가 없었다.
필요한 배경 지식
- 스택/큐
주의할 점
- 반복문마다 다리를 지나는 트럭들의 무게 합을 구하기위해 sum()함수를 사용할 경우 시간초과가 발생한다.
전체 코드
from collections import deque
def solution(bridge_length, w, truck_weights):
wait = deque(truck_weights)
ing = deque([0] * bridge_length)
t, ingw = 0, 0
while ing:
t += 1
outs = ing.popleft()
ingw -= outs
if wait:
if ingw + wait[0] <= w:
ins = wait.popleft()
ing.append(ins)
ingw += ins
else:
ing.append(0)
return t
'알고리즘 (Python) > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Level3] 징검다리 건너기 (파이썬) (1) | 2022.08.22 |
---|---|
[프로그래머스][Level2] 구명보트 (파이썬) (0) | 2022.08.13 |
[프로그래머스][Level2] 조이스틱 (파이썬) (0) | 2022.08.13 |
[프로그래머스][Level2] 양궁대회 (파이썬) (0) | 2022.08.13 |
댓글