N, M = map(int, input().split())
pos = list(map(int, input().split()))
arr = [i for i in range(1, N + 1)] # N이 10이라면 1 ~ 10 까지 배열
count = 0
for i in pos:
idx = arr.index(i)
if len(arr) // 2 >= idx: # 오른쪽으로 가는건 한번을 더 보내야 0번 인덱스로 빼야 할 숫자가 간다.
while 1: # 따라서 왼쪽으로 가는걸 >= 로 해줘야 한다.
if arr[0] == i:
arr.pop(0)
break
else:
arr.append(arr.pop(0))
count += 1
else:
while 1:
if arr[0] == i:
arr.pop(0)
break
else:
arr.insert(0,arr.pop(-1))
count += 1
print(count)
😢 조건문에서 >= 를 안줘서 헤맸다. 프린트를 찍어 보고서야 아! 오른쪽으로 회전하는건 한번 더 가야 0번 인덱스로 가고 0번에서 빼겠구나! 하고 깨달았다. 양쪽에서 빠질 수 있다고 문제를 잘못 이해하고 있었다. 예제를 보면서도 이게 왜 이렇게 되는거지.. 하고 있었는데 역시나..