코딩테스트

[프로그래머스 / lv 0] 문자열 정렬하기(1) (JAVA)

lyndaa 2023. 4. 7. 17:49

문제


풀이 방법

  • emergency를 정렬시킨 배열을 만든다.
  • 해당 배열의 인덱스를 통해 진료 순서를 answer 배열의 값으로 저장한다.
    • 오름차순 정렬이므로 전체 길이에서 해당 배열의 인덱스를 뺀 값이 진료 순서가 된다.

코드

import java.util.Arrays;
class Solution {
    public int[] solution(int[] emergency) {
        int[] emergency2 = Arrays.copyOf(emergency,emergency.length);
        int[] answer = new int[emergency.length];
        Arrays.sort(emergency2);
        for(int i=0; i<emergency.length; i++){
            for(int j=0; j<emergency.length; j++)
                if(emergency[i]==emergency2[j]){
                    answer[i]=emergency.length-j;
                    break;
                }
        }
        return answer;
    }     
}

👇🏻 스트림 활용

import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Collectors;

class Solution {
    public int[] solution(int[] e) {
        return Arrays.stream(e).map(i -> Arrays.stream(e).boxed().sorted(Comparator.reverseOrder()).collect(Collectors.toList()).indexOf(i) + 1).toArray();
    }
}