白駿15961回転寿司
8828 ワード
回転寿司
問題は白駿で確認できます.
✔方法
✔コード
import sys, copy
from collections import deque
def solution(d,k,c,nodes):
answer = 1
lp, rp = 0, 0
window = deque()
dic_window = {(node+1):0 for node in range(d)}
dic_window[c] += 1 # 쿠폰은 미리 추가
max_answer = 1
# 초기 k개의 노드
for i in range(k):
rp += 1
window.append(nodes[i])
dic_window[nodes[i]] += 1
if dic_window[nodes[i]] == 1:
answer += 1
# 왼쪽 포인터가 마지막까지 도달하면 종료
while( lp != len(nodes)-1 ):
# 왼쪽 포인터 이동
elem = window.popleft()
dic_window[elem] -= 1
lp += 1
if dic_window[elem] == 0:
answer -= 1
# 오른쪽 포인터 이동
window.append(nodes[rp])
dic_window[nodes[rp]] += 1
if dic_window[nodes[rp]] == 1:
answer += 1
rp += 1
# 오른쪽 노드는 넘어가면 왼쪽끝으로 이동
if rp == len(nodes) :
rp = 0
if answer > max_answer:
max_answer = answer
# print(window)
print(max_answer)
return
if __name__ == "__main__":
N, d, k, c = map(int, input().split())
nodes = []
for _ in range(N):
nodes.append(int(sys.stdin.readline().rstrip()))
solution(d, k, c, nodes)
チップ
そのため、ディックシャーナを使ったほうがいいです.
Reference
この問題について(白駿15961回転寿司), 我々は、より多くの情報をここで見つけました https://velog.io/@aszxvcb/백준-15961-회전-초밥テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol