💡 문제 이해를 잘하자..ㅎ😅

<처음 코드
import sys
from collections import deque
input = sys.stdin.readline
N, M = map(int,input().split(' '))
position = deque(map(int,input().split(' ')))
dq = deque(i+1 for i in range(N))
cnt = 0
while position:
if dq[0] == position[0]:
dq.popleft()
position.popleft()
elif len(dq) - dq.index(position[0]) > dq.index(position[0]):
dq.append(dq.popleft())
cnt += 1
else:
dq.appendleft(dq.pop())
cnt += 1
print(cnt)
<수정 코드>
import sys
from collections import deque
input = sys.stdin.readline
N, M = map(int,input().split(' '))
position = deque(map(int,input().split(' ')))
dq = deque(i+1 for i in range(N))
cnt = 0
while position:
if dq[0] == position[0]:
dq.popleft()
position.popleft()
# 전체 크기를 매번 세지 않기 위해 추가한 코드
N -= 1
# 전체 크기를 매번 세지 않기 위해 수정한 코드
elif N > 2 * dq.index(position[0]):
dq.append(dq.popleft())
cnt += 1
else:
dq.appendleft(dq.pop())
cnt += 1
print(cnt)

💡 코테 스터디 중 나온 기발한 풀이법
혜진님: "N > 2 * dq.index(position[0]):" 이 부분을 len(dq)/2 로 선언해서 절반을 기준으로 어디에 더 가까운지 진행하였습니다.
⭐️ 서현님: "rotate()" 메소드를 사용하여, 부호가 - 이면, 그 갯수만큼 pop()해서 appendleft()를 해주고, 부호가 + 이면, 그 갯수만큼 popleft()해서 append()를 해주는 식으로 코드를 단축하였습니다.