문제풀이/백준(Boj) 문제풀이
[백준][큐 & 덱] 1021. 회전하는 큐 (파이썬/Python)
얄루몬
2021. 12. 9. 16:09
from collections import deque
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
p = list(map(int, input().split()))
dq = deque([i for i in range(1, n+1)])
cnt = 0
for i in p:
while True:
if dq[0] == i:
dq.popleft()
break
else:
if dq.index(i) < len(dq)/2:
while dq[0] != i:
dq.append(dq.popleft())
cnt += 1
else:
while dq[0] != i:
dq.appendleft(dq.pop())
cnt += 1
print(cnt)
덱에 들어있는 수보다 내가 찾고자 하는 수의 위치가 왼쪽에 있을 땐 popleft를 해주고
덱에 들어있는 수보다 내가 찾고자 하는 수의 위치가 오른쪽에 있을 땐 pop 해준다.