queue
list
queue
: 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 자료구조이다. FIFO(First in First out) 방식으로 스택과 꺼내는 순서가 반대이다.list.pop(0)
처럼 index를 0
으로 설정한다.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))
enumerate
: 순서가 있는 자료형의 index번호 와 index값을 반환하는 함수이다.max(iterable, key = lambda 매개변수 : 식)
: iterable의 max값을 구한다. 단, 조건은 lambda 표현식에 정의된 함수식에 의해 정해진다.queue.pop(0)
: N이 0이면 맨 앞의 원소를 뺀다.