queue_list = list(sys.stdin.readline().split()) # 몇 개 입력할 건지에 따른 리스트
queue_list[M] = "answer"
for i in queue_list:
if(i==max(queue_list)): # 만약, 리스트에서 최대 값이 현재 있는 값이라면?
printed += 1 # print의 숫자를 올려라
if(queue_list[0]=="answer"): # 만약 리스트의 숫자가 최대값이면서 현재 내가 찾는 값이라면?
print(printed) # 지금까지 프린트 된 숫자를 프린트해라
break
else:
queue_list.pop()
else:
queue_list(queue_list.pop())
-> 당연히, 될 리가 없었다. max(queue_list)가 돌아가지 않기 때문이다!
2. 그래서 나는 "아! 문자 말고 아무 숫자를 넣자" 라는 생각으로 100을 집어 넣었다.
-> 이것도 생각해보니 max(queue_list)에 100이 되어버려서 될 리가 없었다.
3. 2차원 배열을 사용하여, 하나에는 인덱스 값 / 하나에는 우선 순위 값을 넣었다.
import sys
num = int(input()) # 테스트 케이스 몇 번 돌릴 것인지
for i in range(num):
queue_degree = []
printed = 0 # 이거는 몇 번째로 인쇄되는지
N, M = map(int,input().split()) # 몇 개 입력할 건지, 출력할 숫자
queue_list = list(map(int, sys.stdin.readline().split())) # 몇 개 입력할 건지에 따른 리스트 / [1, 2, 3, 4]
for i in range(len(queue_list)):
queue_degree.append([i, queue_list[i]]) # [[0, 1], [1, 2], [2, 3], [3, 4]]
while(1):
if (queue_degree[0][1] == max(queue_list)):
printed += 1
# print(queue_list[0])
if (queue_degree[0][0]==M):
print(printed)
break
else:
queue_list.pop(0)
queue_degree.pop(0)
else:
queue_list.append(queue_list.pop(0))
queue_degree.append(queue_degree.pop(0))
-> 로직은 위에 것과 똑같고, max 값이 제일 앞에 있는 값과 같다면 인덱스를 비교하여 내가 찾고자 하는 인덱스 번호가 맞는지를 확인한다.