Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

프로그래머스 - 다리를 지나는 트럭

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