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에 담아줌으로써 매 초마다 다리에 있는 트럭을 업데이트 시켜주는 방식으로 풀이하였다. 리스트 컴프리헨션을 활용하여 보다 간편하게 풀이할 수 있었다 :)
'Data Structure 🛠️ > Queue' 카테고리의 다른 글
[소프티어 6270번] GBC (0) | 2024.06.19 |
---|---|
[프로그래머스 PCCP 모의고사 3번] 카페 확장 (0) | 2023.11.11 |
[프로그래머스 Lv.2] 프로세스 (0) | 2023.09.21 |
[프로그래머스 Lv.2] 기능개발 (0) | 2023.09.21 |
[SWEA 5099번] 피자굽기 (0) | 2023.09.21 |