자주 나오는 문제. 처음엔 거리 계산해서 안움직이고 풀려했는데 실패. 아래에 안움직이는 코드도 찾아놓음.
import sys
input = sys.stdin.readline
from collections import deque
n, m = map(int, input().split())
position = list(map(int, input().split()))
q = deque([i for i in range(1, n+1)])
move = 0
for num in position:
if q.index(num) < len(q)/2:
while q[0] != num:
q.rotate(-1)
move += 1
else:
while q[0] != num:
q.rotate(1)
move += 1
if q[0] == num:
q.popleft()
continue
print(move)
안움직이고 중간에서 pop하는 코드
n, m = map(int, input().split())
dq = [i for i in range(1, n+1)]
ans = 0
for find in map(int, input().split()):
ix = dq.index(find)
ans += min(len(dq[ix:]), len(dq[:ix]))
dq = dq[ix+1:] + dq[:ix]
print(ans)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 15685 드래곤커브 (0) | 2021.09.28 |
---|---|
[백준][Python] 1065 한수 (0) | 2021.09.28 |
[백준][Python] 16159 1, 2, 3 더하기 9 (0) | 2021.09.28 |
[백준][Python] 17141 연구소 2 (0) | 2021.09.24 |
[백준][Python] 17484 진우의 달 여행 (0) | 2021.09.23 |