프로그래머스|프린터

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
6/136

문제설명

프린터에 입력된 인쇄목록들의 우선순위를 입력받고 자신이 원하는 인쇄물이 몇 번째로 인쇄되는지 구하는 문제입니다.

작동 순서

  1. 큐에 우선순위와 인덱스번호를 입력합니다.

  2. 우선순위별로 인쇄목록을 정렬합니다.

  3. 큐에서 인쇄물을 꺼내서 우선순위를 확인하고 현재 뽑아야하는 인쇄물이면 그 인쇄물을 인쇄하고 answer를 +1해줍니다. 현재 뽑아야하는 인쇄물이 아니면 그 인쇄물을 다시 큐에 삽입하고 다음 인쇄물을 확인합니다.

  4. 큐에서 꺼낸 인쇄물이 현재 뽑아야하는 인쇄물이고 그 인쇄물이 자신이 원하는 인쇄물일 경우 anwer를 반납합니다.

소스코드

from collections import deque
def solution(priorities, location):
    answer = 0
    q=deque()
    for i in range(len(priorities)):
        q.append([priorities[i],i])
    priorities.sort(reverse=True)
    for i in range(len(priorities)):
        while True:
            temp=q.popleft()
            if temp[0]!=priorities[i]:
                q.append(temp)
            else:
                answer+=1
                if temp[1]==location:
                    return answer
                else:
                    break
profile
INTP 개발자 지망생

0개의 댓글