티스토리 뷰

728x90

https://programmers.co.kr/learn/courses/30/lessons/42587?language=java 

 

코딩테스트 연습 - 프린터

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

programmers.co.kr

 


[아이디어]

배열을 정렬하고, queue에는 순서 그대로 넣는다.

location 아이템을 queue에 두고 팔로잉한다고 생각한다.

-> queue가 pop되거나, location 아이템이 queue 맨 뒤로 옮겨질 때 -1을 해준다.


import java.util.*;

class Solution {
    public int solution(int[] priorities, int location) {
        int answer = 0;
        int l = location;

        Queue<Integer> priorityQueue = new LinkedList<>();
        for(int p : priorities) {
            priorityQueue.add(p);
        }
        Arrays.sort(priorities);

        int val = 0;
        while(!priorityQueue.isEmpty()) {
            val = priorityQueue.poll();
            if(val == priorities[priorities.length -1 - answer]) {
                answer++;
                l--;
                if(l < 0) {
                    break;
                }
            }else {
                priorityQueue.add(val);
                l--;
                if(l < 0) {
                    l = priorityQueue.size()-1;
                }
            }
        }
      
        return answer;
    }
}
728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31