Koala - 15기/코딩테스트 준비 스터디
[백준/python] 1966: 프린터
ㄱㅈㅅㅇ
2024. 7. 21. 16:26
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를 출력한다.