Published:
Updated:


Solution

from collections import deque

UMM = int(input())


# 이제부터 백준이라도 메서드 분리해주자
def solution():
    N, M = map(int, input().split())
    q_list = list(map(int, input().split()))
    q = deque(q_list)
    case = 0
    # 0에서 1을 뺀 게 -1이니까 그전까지 계속 돌아줘
    while M != -1:
        # 큐에서 가장 큰 값이 첫번째 값이랑 같으면
        if max(q) == q[0]:
            # 첫번째를 꺼내줌
            q.popleft()
            # 첫번째 (하나) 꺼내줬으니 다시 채워줘야지 그치?
            case += 1
            # M 앞으로 한칸 이동
            M -= 1
            # else 쓰기 싫어서 껀띠뉴 사용
            continue

        # 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면,
        # 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. (문제 조건이야)
        q.append(q.popleft())

        if M == 0:
            # M도 같이 맨뒤자리로 이동하는 거야 (위에서 append, popleft 해줬짢아)
            M = len(q) - 1
        else:
            # 앞으로 한칸
            M -= 1

    return case


# 돌리기
for _ in range(UMM):
    print(solution())

Leave a comment