list += element
는 항상 extend의 형태로 작용한다. tuple 이나 리스트의 형태로 element를 추가해주려면 append
를 이용해야 한다.
deque
에 list나 tuple append 가능함
항상 index
범위 주의해줄것..!
truck_weights
: 아직 다리 위에 있지 않은 트럭들
truck_in_bridge
: 다리 위에 있는 트럭들 (트럭 무게, 다리에 들어간 시간)의 배열. → 다리 위에 있는 트럭들의 합을 구하여 추가로 트럭이 들어갈 수 있는 지를 계산하기 위함
time
: 소요시간
time
이 1 증가할 때마다 while 문에서는 같은 작업을 수행한다.
- 다리 위에 있는 트럭 나가기
다리에는 1초에 트럭 하나씩만 들어올 수 있기에 맨 앞 트럭만 검사해주면 된다. 맨 앞 트럭이 들어온 시간과, 현재 시간, 다리 길이를 비교하여 맨 앞 트럭이 다리를 나갈 수 있으면 내보낸다- 다리 위에 트럭 들어가기
sumTruckonBridge
: 현재 다리 위에 있는 트럭들의 무게의 합
sumTruckonBridge
에truck_weight
가장 첫번째의 트럭 무게를 합 친 무게를 다리가 감당할 수 있으면truck_weight
의 첫번째 트럭을truck_in_bridge
로 옮긴다.
( 본 과정은truck_weight
에 트럭이 있을 때에만 실행한다)- while 문은
truck_weight
와truck_in_bridge
가 모두 빌 때까지 진행한다. → 다리에 더 이상 진입할 트럭이 없고, 다리 위에 있는 트럭이 모두 나갈 때까지.