[programmers] 프린터

KwonSC·2022년 3월 18일
0

programmers - Java

목록 보기
6/17
post-thumbnail

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


Code

import java.util.*;

class Solution {
    public int solution(int[] priorities, int location) {
        PriorityQueue<Integer> q = new PriorityQueue<>(Collections.reverseOrder());
        for (int priority : priorities) {
            q.offer(priority);
        }
        int answer = 1;
        while(!q.isEmpty()) {
            for (int i = 0; i < priorities.length; i++) {
                if (q.peek() == priorities[i]) {
                    if (location == i) {
                        return answer;
                    }
                    q.poll();
                    answer++;
                }
            }
        }
        return answer;
    }
}

Solution

처음엔 우선순위큐에 변수 prioritylocation을 가진 사용자 정의 클래스 Task를 만들어 직접 Comparator를 람다로 정의해 쉽게 풀어보려고 했지만 우선순위가 같을때 넣은 순서대로 나오는게 아니어서 실패했다. 왜 실패했는지 좀 더 공부해봐야겠다.

0개의 댓글