목차
문제 설명
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 중복된 원소는 없습니다.
- 1 ≤ emergency의 길이 ≤ 10
- 1 ≤ emergency의 원소 ≤ 100
import java.util.Arrays;
class Solution {
public int[] solution(int[] emergency) {
// 원본 배열의 복사본 생성
int[] sortedEmergency = emergency.clone();
// 내림차순 정렬
Arrays.sort(sortedEmergency);
// 내림차순으로 정렬하기 위해 뒤집는다.
for (int i = 0; i < sortedEmergency.length / 2; i++) {
int temp = sortedEmergency[i];
sortedEmergency[i] = sortedEmergency[sortedEmergency.length - 1 - i];
sortedEmergency[sortedEmergency.length - 1 - i] = temp;
}
// 진료 순서를 저장할 배열
int[] answer = new int[emergency.length];
// 원본 배열의 각 요소에 대해 순서 매기기
for (int i = 0; i < emergency.length; i++) {
for (int j = 0; j < sortedEmergency.length; j++) {
if (emergency[i] == sortedEmergency[j]) {
answer[i] = j + 1; // 1부터 시작하는 순서
break;
}
}
}
return answer;
}
}
코드 설명
- sortedEmergency = emergency.clone()
emergency 배열을 복사해서 정렬 작업이 원본 배열에 영향을 미치지 않도록 한다. - Arrays.sort(sortedEmergency)
배열을 오름차순으로 정렬한 후, for 루프를 사용해 내림차순으로 뒤집는다. - 진료 순서 계산
이중 for 루프를 사용해 emergency 배열의 각 요소가 sortedEmergency 배열에서 몇 번째인지 찾는다. 찾은 순서에 1을 더해 결과 배열에 저장한다.
'JAVA > 프로그래머스 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스, LV.0] 숨어있는 숫자의 덧셈 (2) (0) | 2024.12.10 |
---|---|
[프로그래머스, LV.0] 팩토리얼 (0) | 2024.12.10 |
[프로그래머스 LV.0] 중복된 문자 제거 (1) | 2024.12.10 |
[프로그래머스 LV.0] 2차원으로 만들기 (1) | 2024.12.02 |
[프로그래머스 LV.0] 외계행성의 나이 (0) | 2024.12.02 |