본문 바로가기
알고리즘/자료구조

[백준][Python] 1021번 회전하는 큐

by 임짠짠 2022. 2. 15.
반응형
 

1021번: 회전하는 큐

첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가

www.acmicpc.net

 

코드

from collections import deque
N, M = map(int,(input().split()))
number = list(map(int,input().split()))
dq = deque([i for i in range(1,N+1)])
cnt = 0

for i in number:
    while 1:
        if dq[0] == i:
            dq.popleft()
            break
        else:
            if dq.index(i) < (len(dq) / 2):  # 어느쪽으로 이동시키는 것이 빠른지 알기 위해
                while dq[0] != i:
                    dq.append(dq.popleft())
                    cnt += 1
            else:
                while dq[0] != i:
                    dq.appendleft(dq.pop())
                    cnt += 1

print(cnt)

 

반응형

댓글