본문 바로가기
개발로그/알고리즘

프로그래머스 Lv.0 진료순서 정하기

by 쩜징 2023. 7. 21.

프로그래머스 Lv.0 진료순서 정하기


환자의 응급도를 기준으로 진료 순서를 정한다.

정수 배열 emergency가 매개변수로 주어질 때

응급도가 높은 순서대로 순서를 정한 배열을 return하라.

 

emergency result
[3, 76, 24] [3, 1, 2]
[1, 2, 3, 4, 5, 6, 7] [7, 6, 5, 4, 3, 2, 1]
[30, 10, 23, 6, 100] [2, 4, 3, 5, 1]

 

** 풀이 방법

 

ArrayList를 만들어서 emergency의 원소들을 저장한다.

List<Integer> list = new ArrayList<>();
for (int aa : emergency) list.add(aa);

 

list를 내림차순으로 정렬한다.

why? 응급도가 높은 순서대로 배치해야 하기 때문에

list.sort(Comparator.reverseOrder());

 

emergency배열에 접근해서

emergency[i]와 같은 값을 list에서 찾아

그 인덱스를 answer 배열에 저장한다.

인덱스는 0부터 시작하므로 각 자리마다 +1을 해준다.

for (int i=0; i<emergency.length; i++) {
    answer[i] = list.indexOf(emergency[i]);
    answer[i]++;
}

 

<> 전체 코드 </>

import java.util.*;
class Solution {
    public int[] solution(int[] emergency) {
        int[] answer = new int[emergency.length];
        List<Integer> list = new ArrayList<>();
        for (int aa : emergency) list.add(aa);
        list.sort(Comparator.reverseOrder());
        for (int i=0; i<emergency.length; i++) {
            answer[i] = list.indexOf(emergency[i]);
            answer[i]++;
        }
        
        return answer;
    }
}

 

반응형

댓글