Posts [알고리즘] 프로그래머스 - 프린터
Post
Cancel

[알고리즘] 프로그래머스 - 프린터


문제

프린터


접근

큐, 힙 문제이다. 프린터 자체는 큐로 구현하고, 우선순위를 최대 힙으로 구현해놓으면 편하게 풀 수 있다.
힙에서 가장 상단과 현재 큐의 상단을 비교하여 같으면 빼고 다르면 큐에 다시 삽입하는 식이다.

따로 큐나 힙을 쓰진 않았고 list를 이용해 구현했다.
pq가 힙의 역할을 한다.

코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def solution(priorities, location):
    answer = 0
    pq = priorities[:]
    pq.sort()
    while True:
        if pq[-1]==priorities[0]:
            priorities.pop(0)
            pq.pop(-1)
            if location == 0:
                break
            location-=1
            answer+=1
        else:
            priorities.append(priorities[0])
            priorities.pop(0)
            if location == 0:
                location = len(priorities)-1
            else:
                location -= 1
    return answer+1


This post is licensed under CC BY 4.0 by the author.

[알고리즘] 프로그래머스 - 타겟 넘버

[알고리즘] 프로그래머스 - 주식가격