프로그래머스 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;
}
}
반응형
'개발로그 > 알고리즘' 카테고리의 다른 글
프로그래머스 Lv.0 등수매기기 (0) | 2023.07.23 |
---|---|
프로그래머스 Lv.0 안전지대 (0) | 2023.07.23 |
프로그래머스 Lv.0 가까운 수 (0) | 2023.07.20 |
프로그래머스 Lv.0 다음에 올 숫자 (0) | 2023.07.19 |
프로그래머스 Lv.0 리스트 자르기 (0) | 2023.07.17 |
댓글