프로그래머스 문제풀이/Level 0

진료 순서 정하기 (자바, Java)

뮤츠 2022. 11. 27. 19:05

'값에서 순서를 추출' => 값을 key로, 순서를 value로 하는 맵자료형 활용.

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

class Solution {
    public int[] solution(int[] emergency) {
        int[] answer = {};
        int l = emergency.length;
        answer = new int[l];
        Map <Integer, Integer> origin = new HashMap<>(); // emergency의 원래 순서를 저장할 HashMap
        for (int i=0; i<l; i++) {
        	origin.put(emergency[i], i);
        }
        Arrays.sort(emergency); // emergency 정렬
        Map <Integer, Integer> arr = new HashMap<>(); // emergency의 정렬 순서를 저장할 HashMap
        for (int i=0; i<l; i++) {
        	arr.put(emergency[i], l-i);
        }
        for (int i=0; i<l; i++) {
        	answer[origin.get(emergency[i])] = arr.get(emergency[i]);
        }        
        
        return answer;
    }
}