코딩테스트 대비/단계별 코딩 테스트 준비(27일 과정)
[큐/Python] 1021번: 회전하는 큐 - 효과는 굉장했다!
bluetag_boy
2022. 2. 11. 21:24
반응형
1021번: 회전하는 큐
첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가
www.acmicpc.net
알고리즘 분류
- 자료 구조
- 덱
SOLUTION
import sys
from collections import deque
N, M = map(int, sys.stdin.readline().split())
nums = list(map(int, sys.stdin.readline().split()))
queue = deque([i for i in range(1,N+1)])
cnt = 0
for num in nums:
while True:
if queue[0] == num:
queue.popleft()
break
else:
if queue.index(num) > len(queue) // 2:
while queue[0] != num:
queue.rotate(1)
cnt += 1
else:
while queue[0] != num:
queue.rotate(-1)
cnt += 1
print(cnt)