[白俊]1021号:回転するQ(Python)
質問する
私の答え
from collections import deque
import sys
input = sys.stdin.readline
n,m=map(int, input().split())
arr=list(map(int, input().split()))
q=deque(i for i in range(1,n+1))
cnt=0
for i in arr:
while True:
#1번
if q[0]==i:#큐의 첫번째 인자가 뽑아야되는 수의 위치와 일치
q.popleft()#뽑는다
break
else:
#2번
if q.index(i) < len(q)/2: #인덱스 위치가 길이의 반보다 작다면(소수점)
#왼쪽으로
while q[0]!=i:
q.append(q.popleft())#뽑아서 추가
cnt+=1
#3번
else:#인덱스가 크다면(같다면)
#오른쪽으로
while q[0]!=i:
q.appendleft(q.pop())#뽑아서 맨 앞에 추가
cnt+=1
print(cnt)
方法(q.popleft())
2号(q.append(q.popleft()))
3号q.appendleft(q.pop())
を実現すればよい.Reference
この問題について([白俊]1021号:回転するQ(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@yj_lee/백준-1021번-회전하는-큐-파이썬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol