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

Updated:

bridge_length weight truck_weights return
2 10 [7,4,5,6] 8
100 100 [10] 101
100 100 [10,10,10,10,10,10,10,10,10,10] 110
  • Python3
def solution(bridge_length, weight, truck_weights):
    answer = 1
    visited = []
    visiting = []
    now_weight = 0
    t_l = len(truck_weights)
    while len(visited) != t_l:
        answer += 1
        for i in range(len(visiting)):
            visiting[i][0] += 1
        # 현재 다리의 하중이 트럭 무게를 견딜 수 있으면
        if len(truck_weights) != 0 :
            if now_weight + truck_weights[0] <= weight:
                # 현재 weight 업데이트
                val = truck_weights[0]
                now_weight += val
                visiting.append([1, val])
                truck_weights.pop(0)

        # 다리를 다 건넜으면
        size = len(visiting)
        for _ in range(size):
            temp = visiting.pop(0)
            if temp[0] == bridge_length:
                now_weight -= temp[1]
                visited.append(temp[1])
            else :
                visiting.append(temp)
    return answer
solution(2, 10, [7,4,5,6])