알고리즘 & 코딩테스트

[백준] 1021번 회전하는 큐

Haksae 2022. 3. 8. 16:28

⛏ 문제 파악

  • Deque를 구현하는 문제이면서 동시에, circular Queue를 보여주기 위한? 문제

👉🏻  답안

from sys import stdin
from collections import deque

N, M = map(int, stdin.readline().split(' '))
nums = list(map(int, stdin.readline().split(' ')))

arr = deque([])
count = 0

for i in range(1, N+1):
  arr.append(i)

for num in nums:
  
  if num == arr[0]:
    arr.popleft()
    
  elif arr.index(num) < len(arr)/2:
    while num != arr[0]:
      arr.append(arr.popleft())
      count += 1
    arr.popleft()
    
  else:
    while num != arr[0]:
      arr.appendleft(arr.pop())
      count += 1
    arr.popleft()

print(count)

📑  간단한 설명

  • popleft()를 사용해야하기에 deque를 import했다.
  • 특별한 내용은 없다.