Study/Java

[Java 자바] 프로그래머스 Lv 0 - 진료순서 정하기

1.jun 2024. 10. 21. 14:00
728x90
반응형

 

 

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

 

목차
  1. 문제 설명
  2. 입출력 예시
  3. 문제 풀이

 

 


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
반응형