사용 언어 : python
x
: 프린터 기기로 인쇄할 문서 개수
y
: 궁금한 문서 위치(타겟 위치)
imp
: x개의 문서 중요도가 저장된 list
order
: 타겟(궁금한 문서)의 출력 순서
imp[0]이 max(imp)인 경우
그 문서를 출력해야 하므로 order을 +1해준다.
만약 y 가 0이라면 ( 즉 궁금한 문서의 위치가 0번째라면 ) order를 출력하고
아니라면 문서 하나가 출력이 되었으므로 y위치를 앞으로 땡겨준다 (y -= 1
)
imp[0]이 max(imp)가 아닌 경우
imp[0]을 맨뒤로 보낸 후
y위치 또한 앞으로 하나 땡겨준다.(y-=1
)
이때y == 0
인 경우 ( 즉 궁금한 문서의 위치가 0이지만, max값은 아님 )
그 문서는 맨뒤로 보내버리므로 y =len(imp)-1
이 된다.
# 프린트 큐
# 1966번
import sys
T = int(sys.stdin.readline())
for _ in range(T):
# x는 프린터 기기로 인쇄할 문서 개수
# y는 궁금한 문서의 위치
x, y = list(map(int, sys.stdin.readline().split()))
imp = list(map(int, sys.stdin.readline().split()))
# order은 몇번째로 출력되는지 저장하는 변수
order = 0
while 1:
if imp[0] == max(imp):
order += 1
if y == 0:
print(order)
break
else:
y -= 1
imp.pop(0)
else:
imp.append(imp[0])
imp.pop(0)
if y == 0:
y = len(imp)-1
else:
y -= 1