본문 바로가기

알고리즘/백준 (Pyhthon)

[알고리즘] 백준 1966 프린터큐

im_list #우선순위 입력 리스트
im_list2 #우선순위 입력 리스트 복사, max값 확인용
result #n의 크기만큼 초기화해놓고 인쇄순서 넣음
queue #index용 배열
test_case = int(input())

for _ in range(test_case):
    n, m = map(int, input().split(' '))
    im_list = list(map(int, input().split(' ')))
    im_list2 = []
    
    for i in im_list:
        im_list2.append(i)
    
    result = [0 for _ in range(n)]
    queue = [i for i in range(n)]
    
    count = 1
    while queue:
        if im_list[queue[0]] == max(im_list2):
            result[queue[0]] = count
            queue.pop(0)
            count += 1
            im_list2.remove(max(im_list2))
            
        else:
            queue.append(queue.pop(0))
    
    print(result[m])

 

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))