728x90
반응형
https://www.acmicpc.net/problem/13335
문제 해결
- 다리를 que를 이용하여 해결하면 좋겠다는 생각이 바로 든다.
- que안에 있는 숫자의 합은 l을 넘어서는 안된다.
- 1초마다 FIFO로 첫 번째 트럭 or 공기(?)가 나가고 대기중인 트럭이 들어오거나 공기가 들어오는 시물레이션을 코딩하면 된다.
- 공기가 들어갈지 트럭이 들어갈지의 기준은 다리에 있는 무게의 합+대기중인 트럭의 무게가 l보다 크면 공기가 들어가고 작거나 같으면 트럭이 들어가는 것이다.
CODE
import sys
input = sys.stdin.readline
from collections import deque
def solution():
que = deque([0]*w, maxlen=w)
t = 0
total_weight = 0
i = 0 # 대기중인 트럭 인덱스
while i<n:
t += 1
total_weight -= que.popleft()
if total_weight + W[i] <= l:
que.append(W[i])
total_weight += W[i]
i += 1
else:
que.append(0)
t += w
return t
if __name__=='__main__':
n, w, l = map(int, input().split())
W = list(map(int, input().split()))
answer = solution()
print(answer)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 13904 과제 (0) | 2023.12.14 |
---|---|
[python] 백준 10835 카드게임 (0) | 2023.12.13 |
[python] 백준 1069 집으로 (2) | 2023.12.07 |
[python] 백준 1981 배열에서 이동 (0) | 2023.12.04 |
[python] 백준 30823 건공문자열 (3) | 2023.12.03 |
댓글