728x90
반응형
문제 출처 :
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
문제 풀이 :
- python의 기본 라이브러리 중에 deque를 사용해서 풀었다. 사실 queue를 썻어도 크게 다를 건 없었을 꺼 같다.
- 우선 입력된 프린터 문서들을 tuple 형태로 idx와 중요도를 papers deque에 저장했다.
- 이후 가장 왼쪽부터 pop 한후에 나머지 문서들의 중요도를 비교하며 만약 더 중요한 중요도가 있다면 pop 햇던 문서를 다시 넣어주며 cnt_con을 off해주어서 다시 처음부터 시작한다
- 중요도가 더 큰 문서가 없는 경우엔 cnt_con이 on으로 되어있으므로 출력이고 ans+1 한 후에 만약 내가 원하는 문서 번호이면 답을 출력하고 끝낸다.
from collections import deque
t = int(input())
for T in range(t):
n,m = map(int,input().split())
papers = list(map(int,input().split()))
temp =[]
for i in range(len(papers)):
temp.append((i,papers[i]))
papers = deque(temp)
ans=0
while(True):
p_idx ,p_prior = papers.popleft()
cnt_con = 1
for i in range(0,len(papers)):
if(p_prior<papers[i][1]):
papers.append((p_idx,p_prior))
cnt_con = 0
break
if(cnt_con):
ans+=1
if(p_idx == m):
print(ans)
break
반응형
'Computer Science > Algorithm' 카테고리의 다른 글
[백준] 6603 - 로또 (Python) (0) | 2021.02.12 |
---|---|
[백준] 5430 - AC (Python) (0) | 2021.02.11 |
[백준] 1158 - 요세푸스 문제 (Python) (0) | 2021.02.10 |
[백준] 1874 - 스택 수열 (C++) (0) | 2021.02.10 |
[백준] 1874 - 스택 수열 (Python) (0) | 2021.02.10 |