출처 : https://www.acmicpc.net/problem/1021
In [1]:
# N:큐의 크기 M:뽑아내려고 하는 수의 개수
N,M = map(int, input().split())
# M_array: 뽑으려고 하는 원소의 위치(가장 처음 큐에서의 위치)
M_array = list(map(lambda x:int(x)-1, input().split()))
In [2]:
cnt = 0
for _ in range(M):
if M_array[0] < N-M_array[0]: ## 왼쪽으로 rotate
cnt = cnt + M_array[0]
M_array = list(map(lambda x:(x-M_array[0])%N-1, M_array))
del M_array[0]
N = N-1
else: ## 오른쪽으로 rotate
cnt = cnt + (N - M_array[0])
M_array = list(map(lambda x:(x+N-M_array[0])%N-1, M_array))
del M_array[0]
N = N-1
In [3]:
print(cnt)
'알고리즘 > [Python] 백준' 카테고리의 다른 글
(Python) 백준 5397번 : 키로거 (0) | 2020.02.06 |
---|---|
(Python) 백준 1057번 : 토너먼트 (0) | 2020.02.06 |
(Python) 백준 3190번 : 뱀 (0) | 2020.02.05 |
(Python) 백준 1966번 : 프린터 큐 (0) | 2020.02.05 |
(Python) 백준 14499번 : 주사위 굴리기 (0) | 2020.02.05 |