https://www.acmicpc.net/problem/1021
백준 1021 '회전하는 큐' 문제입니다.
deque 모듈을 사용하였고, rotate를 이용하여 2,3번을 구현하였습니다.
인덱스 위치가 그 배열의 길이의 반보다 작으면 2번연산을 수행하고 그 외에는 3번 연산을 수행하였습니다.
import sys
from collections import deque
M, N = map(int, input().split())
poppop = list(map(int, input().split()))
numbers = []
for i in range(M):
numbers.append(i+1)
numbers = deque(numbers)
cnt = 0
for num in poppop:
a = numbers.index(num)
if a < (len(numbers) / 2):
numbers.rotate(-a)
cnt += a
else:
numbers.rotate(len(numbers)-a)
cnt += (len(numbers)-a)
numbers.popleft()
print(cnt)
'백준 알고리즘' 카테고리의 다른 글
파이썬) 백준 알고리즘 | 2075번 : N번째 큰 수 (0) | 2022.02.24 |
---|---|
파이썬) 백준 알고리즘 | 1003번 : 피보나치 함수 (0) | 2022.02.18 |
파이썬) 백준 알고리즘 | 11866번 : 요세푸스 문제 0 (0) | 2022.02.06 |
파이썬) 백준 알고리즘 | 9012번 : 괄호 (0) | 2022.02.06 |
파이썬) 백준 알고리즘 | 10773번 : 제로 (0) | 2022.02.06 |
댓글