프로그래머스 - 다리를 지나는 트럭
https://school.programmers.co.kr/learn/courses/30/lessons/42583
- 현재 무게와 bridge에 있는 트럭으로 구성
- 시간을 dimension으로 하여 구성
- while문으로 1초씩 증가
- 현재 무게 + 대기중인 첫 트럭의 무게가 weight보다 작아야만 추가
- 맨 앞 트럭의 경과 시간이 넘어가면 현재 bridge에서 빼준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def solution(bridge_length, weight, truck_weights):
answer = 0
current_weight = 0
bridge_list = []
while truck_weights:
answer += 1
if current_weight+truck_weights[0] <= weight:
truck_weight = truck_weights.pop(0)
bridge_list.append([truck_weight, answer])
current_weight += truck_weight
if answer-bridge_list[0][1]+1==bridge_length:
current_weight -= bridge_list.pop(0)[0]
return answer+bridge_length