Study/Java
[Java 자바] 프로그래머스 Lv 0 - 진료순서 정하기
1.jun
2024. 10. 21. 14:00
728x90
반응형
목차
1. 문제 설명
728x90
문제 설명
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다.
정수 배열 emergency가 매개변수로 주어질 때,
응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 중복된 원소는 없습니다.
- 1 ≤ emergency의 길이 ≤ 10
- 1 ≤ emergency의 원소 ≤ 100
2. 입출력 예시
입출력 예시
#1
emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 번호를 매긴 [3, 1, 2]를 return합니다.
#2
emergency가 [1, 2, 3, 4, 5, 6, 7]이므로 응급도의 크기 순서대로 번호를 매긴 [7, 6, 5, 4, 3, 2, 1]를 return합니다.
#3
emergency가 [30, 10, 23, 6, 100]이므로 응급도의 크기 순서대로 번호를 매긴 [2, 4, 3, 5, 1]를 return합니다.
3. 문제 풀이
반응형
문제 풀이
1. 배열 emergency를 복제하여, answer에 넣는다.
2. answer를 오름차순 정렬한다. (순위 계산을 하기 위해)
3. 이중 for 문을 사용한다.
4. if 문을 사용하여, answer[i]가 emergency[j]와 같다면, 해당 answer[i]에 emergency의 길이에서 j 값을 뺀 수를 넣는다. (순위 넣기)
5. 값을 찾으면, break을 통해 반복을 종료한다.
6. answer를 반환한다.
import java.util.Arrays;
class Solution {
public int[] solution(int[] emergency) {
int[] answer = emergency.clone();
Arrays.sort(answer);
for(int i=0; i<emergency.length; i++){
for(int j=0; j<emergency.length; j++){
if(answer[i]==emergency[j]){
answer[i] = emergency.length-(j);
break;
}
}
}
return answer;
}
}
메모
clone() : 자신을 복제하여 새로운 인스턴스를 생성한다.
728x90
반응형