[스택/큐] 다리를 지나는 트럭

박고은·2023년 6월 11일
0

def solution(bridge_length, weight, truck_weights):
    answer, total, bridge = 0, 0, [0]*bridge_length
    
    while bridge:
        bridge.pop(0)
        
        if truck_weights:
            if total+truck_weights[0]<=weight:
                bridge.append(truck_weights.pop(0))
                total += bridge[-1]
            else: 
                bridge.append(0)
            total -= bridge[0]
            
        answer += 1
        
    return answer

트럭 전체를 무게에 맞춰서 나누고 다리를 건너는 중에 전 트럭이 다리를 나가고 다리에 올라오는 다음 트럭을 계산하는 방법을 못 찾아서 헤매고 있다가 0으로 된 배열로 다리를 표현해서 무게에 맞춰 시간 1마다 트럭을 append하거나 0을 append 하는 방법을 참고해서 해결
sum으로 배열 전체를 더해서 활용하기에 적합한데 시간 초과가 발생 -> 시간 1마다 배열의 마지막 원소는 다리를 들어와서 무게에 더해지고, 첫번째 원소가 다리를 나가 무게에서 빠지는 형태로 계산

0개의 댓글