백준 1874: 문제링크

  • 문제유형 : 큐, 구현, 그리디

  • 설명

    1. queue의 head의 값이 최대값과 동일한 지 확인한다.

    2. 동일하면 지정한 값과 동일한 지 확인한다.

      아니면 값을 queue의 tail로 보낸다

    3. 지정한 값과 동일하면 출력 아니면 값을 제거한다.

  • 풀이

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    test_case = int(input())

    for _ in range(test_case):
    n, m = list(map(int, input().split(' ')))
    queue = list(map(int, input().split(' '))
    queue = [(i, idx) for idx, i in enumerate(queue)]

    count = 0

    while True:
    if queue[0][0] == max(queue, key=lambda x : x[0])[0]:
    count += 1
    if queue[0][1] == m:
    print(count)
    break
    else:
    queue.pop(0)
    else:
    queue.append(queue.pop(0))