본문 바로가기
  • Let's study
PS/Programmers

[프로그래머스 Lv.0] 진료순서 정하기(Java)

by 코딩고수이고파 2026. 7. 21.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120835

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

풀이

우선순위를 나타내는 rank를 1로 선언한다.

배열을 반복해서 탐색하며 가장 큰 응급도와 해당 인덱스를 찾는다.

가장 큰 값을 찾았다면 해당 위치에 현재 순위를 저장한다.

answer[idx] = rank++;

그리고 이미 순위를 매긴 환자가 다시 선택되지 않도록 값을 0으로 변경한다.

emergency[idx] = 0;

문제에서 응급도는 모두 자연수이므로 0으로 바꾸면 다음 탐색에서 가장 큰 값으로 선택되지 않는다.

코드

class Solution {
    public int[] solution(int[] emergency) {
        int[] answer = new int[emergency.length];
        int rank=1;
        
        for(int j=0;j<emergency.length;j++){
            int max=0, idx=-1;
            
            for(int i=0;i<emergency.length;i++){
                if(max<emergency[i]){
                    max=emergency[i];
                    idx=i;
                }
            }
            
            answer[idx]=rank++;
            emergency[idx]=0;
        }
        
        return answer;
    }
}

댓글