일단 입력을 받아주고 queue에 담아줄거를 deque해서 for문으로 해준다.
빼낼 숫자들을 for문을 돌려서 빼낼 숫자와 큐에 있는 제일 왼쪽의 값이 같으면 빼줘야해서 popleft를 해준다. 만약 아니라면 왼쪽이나 오른쪽으로 이동을 해줘야한다.
queue의 개수를 반 자르게 되면 빼낼 값이 왼쪽에 있을때는 반자른 개수보다 값의 인덱스가 더 작다, 이걸 조건으로 해서 왼쪽에 있을때는 왼쪽으로 이동 popleft를 해서 append해서 제일 오른쪽에 값을 붙여준다.
하지만 오른쪽에 있을 경우에는 오른쪽으로 이동 즉 pop을 해서 appendleft를 해서 제일 왼쪽에 값을 붙여준다. 이걸 계속 돌리고 cnt는 이동할때마다 1씩 더 해준다.
그리고 cnt출력하면 끝!!
from collections import deque
import sys
input = sys.stdin.readline
N,M=map(int,input().split())
data=list(map(int,input().split()))
d = deque([i for i in range(1,N+1)])
cnt=0
for i in data:
while True:
if d[0]==i:
d.popleft()
break
else:
if d.index(i)<len(d)/2:#왼쪽으로 이동
while d[0] !=i:
d.append(d.popleft())
cnt+=1
else:
while d[0] !=i:
d.appendleft(d.pop())
cnt+=1
print(cnt)