from collections import deque
n, m = map(int, input().split())
pick = list(map(int, input().split()))
arr = []
arr = deque()
for i in range(1, n+1):
arr.append(i)
cnt = 0
for ele in pick:
if arr.index(ele) == 0:
arr.popleft()
else:
if arr.index(ele) <= len(arr)-arr.index(ele):
for _ in range(arr.index(ele)):
cnt += 1
arr.append(arr.popleft())
arr.popleft()
elif arr.index(ele) > len(arr)-arr.index(ele):
for _ in range(len(arr)-arr.index(ele)):
arr.appendleft(arr.pop())
cnt += 1
arr.popleft()
print(cnt)
뽑고자하는 원소의 위치를 pick리스트에 저장한다.
위치가 1보다 크거나 같고 N보다 작거나 같다고 했으므로 1부터 N만큼의 위치 원소를 저장하는 arr를 만든다. 이 arr가 회전하는 큐가 되어야하므로 덱으로 할당한다.
알고리즘 방식은 뽑고자 하는 원소를 arr에서 찾고 arr에서의 위치를 반환한다.
이 위치는 앞에서부터의 위치인데, 뒤에서부터의 위치와 비교해서 더 작은 쪽으로 숫자를 밀어야한다. 만약 뽑고자 하는 원소가 제일 처음에 있다면 바로 pop한다. 미는 방식은 덱의 popleft와 append, pop과 appendleft를 사용하였다. 민 만큼 카운트를 해주고 최종 카운트를 출력해주면 된다.