Data Structure/Queue

[프로그래머스 Lv.2] 다리를 지나는 트럭

킹우현 2023. 9. 21. 16:05

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(bridge_length, weight, truck_weights):
    time = 0
    
    queue = []
    
    while truck_weights or queue:
        
        time += 1
        
        if queue:
            queue = [(x[0],x[1]-1) for x in queue if x[1]-1 != 0]
        
        if truck_weights and sum([x[0] for x in queue]) + truck_weights[0] <= weight:
            v = truck_weights.pop(0)
            queue.append((v,bridge_length))
        
    return time

이번 문제는 대기 중인 트럭들이 최단 시간안에 다리를 구하기 위한 시간을 구하는 문제이다.

 

트럭의 무게와 다리의 길이를 queue에 담아줌으로써 매 초마다 다리에 있는 트럭을 업데이트 시켜주는 방식으로 풀이하였다. 리스트 컴프리헨션을 활용하여 보다 간편하게 풀이할 수 있었다 :)