코린이의 소소한 공부노트

[프로그래머스/Lv.0] 진료순서 정하기 본문

코딩테스트 풀이/JAVA

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

무지맘 2022. 10. 21. 13:05

1. Input

1) 정수 배열 emergency

 

2. Output

1) 응급도가 높은 순서대로 진료 순서를 정한 배열

 

3. Constraint

1) emergency에 중복 원소는 없다.

2) 1 <= emergency의 길이 <= 10

3) 1 <= emergency의 원소 <= 100

 

4. Example

Input: emergency={3,76,24} -> Output: {3,1,2}

설명: 76>24>3이므로 응급도가 가장 높은 761위가 되고 이어서 순서를 매기면 3,1,2가 된다.

 

5. Code

1) 첫 코드(2022/10/21)

// ArrayList에 emergency 복사
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i=0 ; i<emergency.length ; i++)
    list.add(emergency[i]);
// emergency 오름차순으로 정렬
Arrays.sort(emergency);
int[] answer = new int[emergency.length];
int rank = 1;
// 정렬된 emergency의 맨 끝(응급도 가장 높음)의 원래 index를 찾아 answer[index]에 등수 저장
for(int i=emergency.length-1 ; i>=0 ; i--,rank++)
    answer[list.indexOf(emergency[i])] = rank;
return answer;