현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다.
나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다.
예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 2 1 4 3 라면 C를 인쇄하고, 다음으로 D를 인쇄하고 A, B를 인쇄하게 된다.
여러분이 할 일은, 현재 Queue에 있는 문서의 수와 중요도가 주어졌을 때, 어떤 한 문서가 몇 번째로 인쇄되는지 알아내는 것이다. 예를 들어 위의 예에서 C문서는 1번째로, A문서는 3번째로 인쇄되게 된다.
큐 현재 문서의 위치를 알 수 있는 배열 만들기
📍 배열의 위치를 나타내는 배열을 한 개 더 만들기.
cases = int(input())
for _ in range(cases):
# 문서 개수, 어디 위치
N, M = map(int, input().split())
# 중요도
scores = list(map(int, input().split()))
# 궁금한 문서 위치
where = list(range(len(scores)))
where[M] = "me"
# 몇 번째로 출력되는가
count = 0
while True:
# 첫 번째가 우선순위 가장 높으면 count += 1
if scores[0] == max(scores):
count += 1
# 그게 궁금한 문서라면 출력
if where[0] == "me":
print(count)
break
# 아니라면 pop해 주기
else:
scores.pop(0)
where.pop(0)
else:
scores.append(scores.pop(0))
where.append(where.pop(0))