티스토리 뷰

예전에 못풀겠어서 걍 풀다 말았는데 다시 푸니까 풀려서 은근 기분이 좋았다.

from collections import deque
def solution(bridge_length, weight, truck_weights):
    # bridge: 현재 다리를 지나고 있는 트럭
    bridge = deque()
    bridge.append([truck_weights[0], bridge_length])
    total_weight = truck_weights[0]
    n = 1
    count = 1
    while bridge:
        # while문 한 번 반복할 때마다 다리 빠져나갈 때까지 남은 시간을 1초씩 줄임.
        for i in range(len(bridge)):
            bridge[i][1] = bridge[i][1] - 1
        
        # 만약 남은 시간이 0초이면 다리에서 내보냄.
        if bridge[0][1] == 0:
            total_weight = total_weight - bridge[0][0]
            bridge.popleft()

        if n < len(truck_weights):
            # 다음 트럭이 올라와도 다리 위의 트럭들의 무게의 합이 weight이면, bridge에 트럭 추가.
            if total_weight + int(truck_weights[n]) <= weight:
                bridge.append([truck_weights[n], bridge_length])
                total_weight = total_weight + truck_weights[n]
                n = n + 1
                
        count = count + 1
        
    return count
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함