Computer Science/Algorithm

BOJ 백준 13335번, 트럭 - Python 파이썬

지안22 2023. 4. 5. 11:54

 

 

13335번: 트럭

입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트

www.acmicpc.net

문제: https://www.acmicpc.net/problem/13335

 

 

import sys
# queue 보다 사용 가능한 메서드가 더 많은 deque를 사용했다.
from collections import deque

input_line = sys.stdin.readline

n, w, L = list(map(int, input_line().rstrip().split()))
trucks = deque(list(map(int, input_line().rstrip().split())))
bridge = deque([0] * w)
time = 0

while not (sum(bridge) == 0 and not trucks):  # 다리가 비어 있지 않으면서 트럭 대기열에 트럭이 있을 때
    bridge.popleft()
    time += 1
    if trucks and (trucks[0] + sum(bridge)) <= L:  # 다리에 새로운 truck이 추가 되어도 최대 하중 이하일 때
        bridge.append(trucks.popleft())
    else:
        bridge.append(0)  # 뒤에 0을 추가해서 다리 길이를 맞춰준다.


print(time)