본문 바로가기

Algorithm/프로그래머스 연습 문제

프로그래머스 / 코딩 테스트 / 프린터

문제 설명

 

 

문제 해결

 

문서를 중요도 순에 따라서 정렬한 후, 자신의 문서가 몇 번째에 인쇄되는지 알아내는 문제이다.

중요도 값이 다른 문서와 겹치는 경우가 존재해서 문서를 표현하는 정보에 유일값을 추가했다.

 

중요도 순으로 정렬을 완료한 후, 저장해놨던 유일값을 찾아서 해당 문서의 위치가 어디인지 반환하는 코드이다.

 

from collections import deque

def solve(priorities, location):
    
    wait = deque([(p,n) for p, n in zip(priorities, list(range(len(priorities))))])
    p = deque()
    n = wait[location][1]
    
    while wait:
        j = wait.popleft()
        cond = True
        for i in wait:
            if j[0] < i[0]:
                wait.append(j)
                cond = False
                break
        if cond:
            p.append(j)
            
    for i in range(len(p)):
        if p[i][1] == n:
            return i+1
            
def solution(priorities, location):
    answer = solve(priorities, location)
    return answer