본문 바로가기
Algorithm/Programmers

Programmers - 프린터

by HaningYa 2020. 5. 15.
728x90

 

코딩테스트 연습 - 프린터

일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린��

programmers.co.kr

우선순위 큐

[예제]

 

[JAVA] 우선순위(PriorityQueue) 큐

1. 개요 일반적으로 Queue라는 자료구조는 '선입선출'(First-In, First-Out)의 대기열 규칙(queuing discipline)을 가지고 있다. 말그대로 먼저들어온 놈이 먼저 나간다는 것이다. 하지만 JAVA에서 제공하는 '...

asuraiv.blogspot.com

코드

import java.util.*;
class Solution {
    public int solution(int[] priorities, int location) {
        int answer = 0;
        PriorityQueue < Job > pq = new PriorityQueue();

        for (int i = 0; i < priorities.length; i++) {
            Job job = new Job();
            job.num = i;
            job.weight = priorities[i];
            pq.offer(job);
        }
        while (!pq.isEmpty()) {
            for (int i = 0; i < priorities.length; i++) {
                if (pq.peek().weight == priorities[i]) {
                    pq.poll();
                    answer++;
                    if (location == i) {
                        return answer;
                    }
                }
            }
        }
        return answer;
    }
}
class Job implements Comparable < Job > {
    int num;
    int weight;
    @Override
    public int compareTo(Job target) {
        //오름차순 정렬
        if (this.weight > target.weight) {
            return -1;
        } else if (this.weight < target.weight) {
            return 1;
        }
        return 0;
    }
}
728x90

'Algorithm > Programmers' 카테고리의 다른 글

Programmers - 스킬트리  (0) 2020.05.29
Programmers - 땅따먹기  (0) 2020.05.29
Programmers - [1차] 프렌즈4블록  (0) 2020.05.08
Programmers - 문자열 압축  (0) 2020.05.08
Programmers - 체육복  (0) 2020.04.11

댓글