https://www.acmicpc.net/problem/1966
from collections import deque
for _ in range(int(input())):
N, M = map(int, input().split())
prior = deque(list(map(int, input().split()))) # 중요도
index = deque(range(N)) # 각 문서의 인덱스
cnt = 1
while prior:
if prior[0] == max(prior):
if index[0] == M:
print(cnt)
break
else:
cnt += 1
prior.popleft()
index.popleft()
else:
prior.rotate(-1)
index.rotate(-1)
prior
와 각 문서의 인덱스(0 ~ N-1)를 저장하는 index
를 deque
으로 구현했다.prior
, index
를 회전한다.t = int(input())
for _ in range(t):
n, m = map(int, input().split())
data = list(map(int, input().split()))
result = 1
while data:
if data[0] < max(data):
data.append(data.pop(0))
else:
if m == 0: break
data.pop(0)
result += 1
m = m - 1 if m > 0 else len(data) - 1
print(result)
m
을 사용하는 방법이 천재적인 것 같다.
이런 생각을 대체 어떻게 할까? 너무 부럽다.