프로그래머스/JAVA

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

달의요정루나 2023. 7. 8. 17:03

https://school.programmers.co.kr/learn/courses/30/lessons/120835

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
class Solution {
    public int[] solution(int[] emergency) {
        int[] answer = new int[emergency.length];//new 연산자로 answer배열 객체를 생성한다.
        
        Integer arr[] = new Integer[emergency.length];//emergency숫자의 진료순서를 담을 배열이다.
        
        for (int i = 0; i < emergency.length; i++) {
			arr[i]=emergency[i];//arr배열에 emergency배열에 있는 값을 옮겨온다.
		}
        
        Arrays.sort(arr,Collections.reverseOrder());
        //sort메소드와 reverseOrder메소드로 arr값들을 내림차순으로 정렬한다.
        
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < arr.length; i++) {
			map.put(arr[i],i+1);//Map인터페이스로 첫번째 arr값(key)부터 의료순서(value)를 부여한다.
		}
        
        for (int i = 0; i < emergency.length; i++) {
			answer[i]=map.get(emergency[i]);
            //map.get을 통해 emergency배열 값에 따른 의료순서를 answer배열에 저장한다.
		}
        
        return answer;
    }
}