코드
from sys import stdin
test_case = int(stdin.readline())
for _ in range(test_case):
# n: 문서의 개수
# m: 몇 번째로 인쇄되었는지 궁금한 문서
# imp: 각 문서의 중요도
# idx: 인쇄 명령을 받은 순서
n, m = map(int, stdin.readline().split())
imp = list(map(int, stdin.readline().split()))
idx = [i for i in range(n)]
order = 0
while(True):
if imp[0] == max(imp): # 1
order += 1
if idx[0] != m: # 2
del imp[0]
del idx[0]
else: # 3
print(order)
break
else:
imp.append(imp[0]) # 4
idx.append(idx[0])
del imp[0]
del idx[0]
풀이
#1: 프린터 Queue의 첫번째 문서의 중요도가 가장 클 때, 그 문서를 출력하고 순서를 1 증각시킨다.
#2: 출력한 문서 (첫번째 문서)가 순서를 알고자 하는 문서(m)이 아닐 경우, 목록에서 지운다.
#3: 출력한 문서가 순서를 알고자 하는 문서일 경우, 순서를 출력하고 종료한다.
#4: 프린터 Queue의 첫번째 문서의 중요도가 max가 아닐 경우, 목록의 첫번째에서 지우고, 맨 뒤에 다시 추가한다.
'👩🏻💻 Front-end > 👾 Algorithm' 카테고리의 다른 글
백준 2108 - 통계학 (Python) (0) | 2022.05.28 |
---|---|
백준 11866 - 요세푸스 문제 (Python) (0) | 2022.05.27 |
프로그래머스 - 신고 결과 받기 (Python) (2022 KAKAO BLIND RECRUITMENT) (0) | 2022.05.22 |
백준 1316 - 그룹 단어 체커 (Python) (0) | 2022.05.21 |
퀵 정렬 Quick Sort (Python) (0) | 2022.05.21 |