minghxx.blog
  • [프로그래머스] 진료순서 정하기
    2023년 10월 20일 13시 51분 20초에 업로드 된 글입니다.
    작성자: 민발자
    728x90

    문제

    외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 
    정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.

    풀이

    int[] answer = new int[emergency.length];
    
    // 높을수록 응급도 높음
    // 3, 1, 2 출력
    for(int i = 0; i < emergency.length; i++) {
        answer[i]++; // 순서 1부터 시작 모두 1 더해줌
        for(int j = 0; j < emergency.length; j++) {
            if (emergency[i] < emergency[j]) 
                answer[i]++; // 값 비교해서 작으면 순위 뒤로 밀리니까 1씩 더해줌
        }
    }

    이중for문이 맞나 싶다..🤔

    참고할만한 다른 사람 풀이

    import java.util.*;
    
    class Solution {
        public int[] solution(int[] emergency) {
            int len = emergency.length;
            int[] answer = new int[len];
            Map<Integer, Integer> map = new HashMap<>();
    
            for (int i = 0; i < len; i++) {
                map.put(emergency[i], i);
            }
    
            Arrays.sort(emergency);
    
            for (int i = len-1; i >= 0; i--) {
                answer[map.get(emergency[i])] = len - i;
            }
    
            return answer;
        }
    }

     

    Map 사용하는 방법

     

    728x90
    댓글