[백준] 1966: 프린터 큐

2400·2024년 12월 26일

백준

목록 보기
11/17
post-thumbnail

아래는 처음에 뭔지도 모르고 인덱스 어케기억함; 이라며 나머지 정수로하고 목표만 float로 하면 되네 ㅋㅋ 라며 기만한 코드 작성이다. (참신함 10점)

당연하게도 시간초과임 ㅇㅇ..

from collections import deque
t = int(input())

for _ in range(t):
    n, m = map(int, input().split())
    dequelist = deque(map(int, input().split()))

    dequelist[m] = float(dequelist[m])
    count = 0

    while dequelist:
        current = dequelist.popleft()

        if current == max(dequelist, default=current):
            count += 1  
            if type(current) == float:
                print(count)
                break
        else:
            dequelist.append(current)
from collections import deque

t = int(input())

for _ in range(t):
    n, m = map(int, input().split())

    priorities = list(map(int, input().split()))
    
    dequelist = deque((i, priorities[i]) for i in range(n))
    count = 0
    
    while dequelist:
        current = dequelist.popleft()
        
        if any(current[1] < doc[1] for doc in dequelist):
            dequelist.append(current)
        else:
            count += 1
            if current[0] == m:
                print(count)
                break

정답 코드이다.

뽀인트는 deque안에 그냥 (인덱스, 중요도)를 하나로 넣는거다.

ex) dequelist = ((인덱스1, 중요도1),(인덱스2, 중요도2),(인덱스2, 중요도2))

이런식이다.

이렇게 되면 값을 비교할때 인덱스와 중요도를 같이쓰기에 중요도가 같아도 인덱스를 알기때문에 정확한 순번을 알 수 있다.

profile
시즌 2의 공부기록 - Artificial Intelligence & AeroSpace

0개의 댓글