백준 / 프린터큐 / 1966
Question
문제링크
Silver 3
Logic
- 조건을 확인하는 대상은 '문서 번호'이므로, 문서 중요로 리스트와 별개로 '문서 번호' 리스트를 저장한다.
- 두 리스트를 조건에 따라 동시에 작동시킨다.
3-1. 리스트 슬라이싱을 이용해 첫 요소와 두번째 이후 요소를 분리시키고, 비교한다. 두번째 이후 요소 리스트에 중요도가 더 큰 항목이 있다면 첫 요소를 맨 뒤로 보낸다.
3-2. 가장 높다면 해당 요소를 출력하고, pop.(0) 하여 첫번째 요소를 출력한다.
Code
from sys import stdin
for _ in range(int(stdin.readline().strip())):
N,M = map(int,stdin.readline().strip().split())
raw = list(map(int,stdin.readline().strip().split()))
num = [ i for i in range(N) ]
cnt=0
if len(raw)==1 : print(1)
else:
while True:
if len(raw)==1:
print(cnt+1)
break
if raw[0] < max(raw[1:]) :
raw = raw[1:] + [raw[0]]
num = num[1:] + [num[0]]
else :
if num[0] == M :
print(cnt+1)
break
else :
cnt+=1
raw.pop(0)
num.pop(0)
Author And Source
이 문제에 관하여(백준 / 프린터큐 / 1966), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@swany0509/백준-프린터큐-1966저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)