글 작성자: 망고좋아
반응형

1021, 회전하는 큐

📁 문제 출처

 

💡 생각

  • queue.index(i) <= len(queue) // 2면은 2번 연산, else면 3번 연산
  • 배열 회전은 rotate함수를 사용하면 편하다.

 

🛠 나의 코드

from collections import deque

n , m = map(int, input().split())

queue = deque()

for i in range(1, n+1):
    queue.append(i)

arr = list(map(int, input().split()))

cnt = 0

for i in arr:
    while True:
        if queue[0] == i:
            queue.popleft()
            break
        else:
            if queue.index(i) <= len(queue) // 2:
                queue.rotate(-1)
                cnt += 1
            else:
                queue.rotate(1)
                cnt += 1
print(cnt)

 

✔️ 배운 점 및 주의할 점

  • 처음에 append(popleft()), appendleft(pop())로 풀려고 했는데 rotate함수를 알아서 쉽게 해결했다.
반응형