[프로그래머스/파이썬] 스택/큐 프린터

bye9·2021년 2월 14일
0

알고리즘(코테)

목록 보기
60/130

https://programmers.co.kr/learn/courses/30/lessons/42587


알고리즘 분류

  • 스택/큐

문제풀이

백준 1966번 프린터 큐와 동일한 문제이다.

우선순위값과 인덱스를 같이 저장한 array리스트를 큐로 만들어준다.
뒤에 리스트에 증요도가 높은 게 하나라도 있다면 뒤에 추가시키고 important를 false로 바꿔준다.

만약 가장 중요한 문서라면 result에 추가시켜준다.
그리고 원하는 인덱스의 값이 몇 번째로 인쇄되는지 출력해주면 된다.

소스코드

def solution(priorities, location):
    from collections import deque
    
    array=[]
    for i in range(len(priorities)):
        array.append((priorities[i],i))

    queue=deque(array)
    result=[]
    while queue:
        important=True
        x,y=queue.popleft()
        for i in range(len(queue)):
            if x<queue[i][0]:
                queue.append((x,y))
                important=False
                break
    
        if important:
            result.append((x,y))

    for i in result:  
        if i[1]==location:
            return (result.index(i)+1)

0개의 댓글