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)