[프로그래머스] 코딩테스트 연습 - 스택/큐 Level 2 프린터

uoahy·2021년 9월 14일
0

Solution.java

import java.util.*;

class Solution {
    public int solution(int[] priorities, int location) {
        int answer = 0;
        
        int[] count = new int[10];
        
        for (int priority : priorities) {
            count[priority]++;
        }
        
        int max = 9;
        
        int i = 0;
        while (true) {
            while (count[max] == 0) {
                max--;
            }
            
            if (priorities[i] == max) {
                count[max]--;
                answer++;
                
                if (i == location) {
                    break;
                }
            }
            
            i = (i + 1) % priorities.length;
        }
        
        return answer;
    }
}

처음에 문제를 수학적으로 예쁘게 풀어보려고했다가 시간만 엄청 낭비했다.

결국 큐처럼 풀긴 했는데 뭔가 조잡한 코드같다.

다른 사람의 풀이를 보았더니 훨씬 깔끔한 풀이가 있었다.

다음번에 그 풀이를 참고하여 다시 한 번 풀어봐야겠다.

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

0개의 댓글