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)]
# [ (2,0), (1,1), (4,2), (3,3) ] --> 값, 인덱스 쌍
count = 0
while True: # 무한반복
if queue[0][0] == max(queue, key = lambda x: x[0])[0]:
# max(queue, key = lambda x: x[0])는 (2,0), (1,1), (4,2), (3,3) 중에서 앞에 값이 가장 큰값인
# (4,2)를 의미하고
# max(queue, key = lambda x: x[0])[0]는 (4,2)에서 4를 의미함
count += 1
if queue[0][1] == m:
print(count) # 앞에서 pop된 수가 m이 된다.
# 2 1 4 3
# 1 4 3 2 (count = 1)
# 4 3 2 1 (count = 2) --> m이다.
break
else:
queue.pop(0)
else:
queue.append(queue.pop(0))
'코딩 테스트 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 모의고사 (level1, python3) (0) | 2021.05.23 |
---|---|
백준 5387 - 키로거 (0) | 2021.02.13 |
백준 1874 스택 수열 (0) | 2021.02.12 |
백준 - 2798 블랙잭 (0) | 2021.02.11 |
백준 2920번 - 음계 (0) | 2021.02.11 |