t=int(input())
for _ in range(t):
n,m=map(int,input().split())
#문서의개수n, 0~ 몇번째문서m
arr=list(map(int,input().split()))
for i in range(n):
if (i==m):
arr[i] = (arr[i],1)
else:
arr[i] = (arr[i],0)
cnt=1
while (len(arr)!=0):
x=arr.pop(0)
flag="T"
for i in range(n - cnt):
if (arr[i][0] > x[0]): flag = "F"
if(flag == "F"):
arr.append(x)
else:
if (x[1] == 1):
print(cnt)
break
cnt += 1
단순히 중요도 순 대로 출력된다고 생각했는데 그럼 틀린다. 우선 같은 중요도일 때도 고려해야하므로 그냥 시키는 대로 코드를 짠다. 테스트 케이스별로 입력받아서 내가 알고 싶은 애를 특정해야하므로 for문을 돌려서 1을 준다. 그리고 전부 나올때까지 반복한다. 맨 앞을 팝하고 플래그 트루로 초기화한다. for문을 지금 있는 개수만큼만 돌려서 지금 팝한애보다 중요한 애가 있으면 플래그 f 로 바꾼다. 만약 플래그 F라면 다시 팝한걸 넣어주고 아니라면 그냥 둔다. 이때 만약 지금 팝한 애가 내가 알고싶던 애면 cnt를 출력한다.
'Koala - 15기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Java]-먹을 것인가 먹힐 것인가 (0) | 2024.07.21 |
---|---|
[백준/C++] 1806번: 부분합 (0) | 2024.07.21 |
[백준/C++] 15657번: N과 M (8) (0) | 2024.07.21 |
[백준/Python] #10709 기상캐스터 (0) | 2024.07.18 |
[백준/Rust]14719번 : 빗물 (0) | 2024.07.15 |