python/알고리즘 문제풀이
BOJ 1966. 프린터큐 (Python)
륵기
2020. 5. 3. 22:02
728x90
반응형
https://www.acmicpc.net/problem/1966
1966번: 프린터 큐
문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를
www.acmicpc.net
t = int(input())#테스트케이스 수
for i in range(0,t):
# n과 m을 입력받는다. - 문서 개수와 순서
n, m = list(map(int, input().split(' ')))
#큐에 원소 입력
q = list(map(int, input().split(' ')))
#큐의 각 원소에 인덱스 부여하기 위해서 enumerate 사용 2,1,3,4-> (2,0),(1,1),(3,2),(4,3)
q = [(i, idx) for idx, i in enumerate(q)]
count = 0
while True:
#큐에서의 원소 순서가 최대 중요도와 같은 경우
if q[0][0] == max(q,key=lambda x : x[0])[0]:
count +=1
#문서의 찾고자하는 위치 m과 인덱스 번호가 같으면 출력
if q[0][1] == m:
print(count)
break
else :
#m과 같지 않다면 원소를 빼서
q.pop(0)
# 맨뒤에 삽입한다.
else:
q.append(q.pop(0))
728x90
반응형