[白俊-1335]トラック
9457 ワード
質問する
リンク
コード#コード#
import sys
from collections import deque
input = sys.stdin.readline
n, w, l = map(int, input().split())
truck = list(map(int, input().split()))
# 다리 길이만큼 0으로 초기화
queue = [0] * w
queue = deque(queue)
answer = 0
for t in truck :
while True :
# 맨 앞에 있는 수를 하나씩 pop
queue.popleft()
# 곧 들어갈 숫자 t와 큐에 있는 숫자의 합이 l보다 크면 0을 넣어줘서
# 다리 위의 트럭이 건너가도록
if sum(queue) + t > l :
queue.append(0)
answer += 1
continue
# 합이 l보다 작거나 같으면 트럭을 다리에 올린다.
else :
queue.append(t)
answer += 1
break
# 모든 트럭이 다리 위에 올라가고
# 마지막 트럭이 다리를 건널 때까지
while sum(queue) > 0 :
queue.popleft()
queue.append(0)
answer += 1
print(answer)
import sys
from collections import deque
input = sys.stdin.readline
n, w, l = map(int, input().split())
truck = list(map(int, input().split()))
queue = [0] * w
queue = deque(queue)
answer = 0
for t in truck :
while True :
queue.popleft()
answer += 1
if sum(queue) + t > l :
queue.append(0)
continue
else :
queue.append(t)
break
answer += w
print(answer)
# 모든 트럭이 다리 위에 올라가고
# 마지막 트럭이 다리를 건널 때까지
while sum(queue) > 0 :
queue.popleft()
queue.append(0)
answer += 1
最初のコードでは、answer += w
このように変えることができます.最後のトラックは橋の上まで登るので、すべての道を渡るために橋の長さに従って移動しなければなりません.
wを加えればいいです.
しかし、コードの長さを短くするだけで、メモリと時間の差は多くありません.ほほほ
問題が終わったら他者のコードを参考にしてください.
Reference
この問題について([白俊-1335]トラック), 我々は、より多くの情報をここで見つけました https://velog.io/@malgam/백준-13335-트럭テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol