본문 바로가기
알고리즘/프로그래머스

[프로그래머스 Lv2] 프린터(Java)

by justkeepgoing 2021. 1. 6.
728x90
반응형

1. 문제

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

 

코딩테스트 연습 - 프린터

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

programmers.co.kr

2. 풀이

 

3. 코드

import java.util.*;
class Solution {
    public int solution(int[] priorities, int location) {
        int answer = 0;
        List<Integer> list = new ArrayList<Integer>();
        for(int i : priorities) list.add(i);
        int locations = location;

        while(!list.isEmpty()){
            int max_priority = list.get(0);
            for(int i =1; i<list.size(); i++){
                if(list.get(0)<list.get(i)){
                    if(locations ==0)
                        locations = list.size()-1;
                    else
                        locations --;

                    int tmp_priority = list.get(0);
                    list.remove(0);
                    list.add(tmp_priority);
                    max_priority =0;
                    break;
                }
            }
            if(max_priority !=0){
                list.remove(0);
                answer++;
                if(locations==0)
                    break;
                else
                    locations--;
            }
        }




        return answer;
    }
}
반응형

 

반응형