[프로그래머스 lv2] 다리를 지나는 트럭 Python
Queue 문제이다.
- 각 원소가 각자 남은 시간정보를 포함하도록 코드를 짜기가 어렵기 때문에 0을 채운 Bridge를 만들어서 물리적으로(?) 트럭이 다리를 넘어갈 수 있도록 표현했다.
- Queue 두개를 동시에 다뤄야 하기 때문에 둘의 pop 순서를 생각해봐야 함정에 안 빠지고 풀 수 있다.
예를 들어,
이 부분에서 Queue 의 pop 순서가 잘못되면(다리 위의 head를 가장 먼저 pop시키지 않으면) 다리 위의 모든 트럭(7트럭)과 대기 큐의 4트럭의 합이 10을 넘기 때문에 다리 위로 append되지 않는다. 따라서 이 부분에서 시간이 1타임 지연된다.
소스코드:
def solution(bridge_length, weight, truck_weights):
bridge=[0]*bridge_length
time=0
while truck_weights:
bridge.pop(0)
if (sum(bridge)+truck_weights[0])>weight:
bridge.append(0)
else:
truck=truck_weights.pop(0)
bridge.append(truck)
time+=1
return time+len(bridge)
5번 테스트케이스에서 시간이 아슬아슬하게 통과한다.
Author And Source
이 문제에 관하여([프로그래머스 lv2] 다리를 지나는 트럭 Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@94kdh0823/프로그래머스-lv2-다리를-지나는-트럭-python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)