큐 기본 구조 활용
알고리즘: Queue
import sys
n, w, l = map(int, input().split())
q = list(map(int, input().split()))
b = [0] * w
time = 0
while b: # 마지막 트럭이 들어오고 그 트럭이 빠져나갈 때 까지
time += 1
b.pop(0) # 다리 첫번째 요소 pop
if q: # 트럭이 존재할 때만 다리에 append
if sum(b) + q[0] <= l:
b.append(q.pop(0))
else:
b.append(0) # 트럭이 있지만 다리에 올리지 못할 경우 다리 공간 채워줘야 함
print(time)
이번 문제에서 꽤나 고전했다 또르륵
사실 내가 생각한 방법이 계속 틀려서 또르륵.. 다른 코드를 참고하여 풀었다..
다리에 처음 트럭이 진입한 순간부터 마지막 트럭이 다리를 빠져나가는 순간까지 time을 증가시켜 나가면서 푸는 문제였다
나보고 혼자 생각하라고하면 사실 이런 방법을 떠올리진 못할 거 같음,,
time이 증가하는 간격을 계산하는 게 좀 어려워뜸..