문제
풀이 방법
- 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();
}
}
'코딩테스트' 카테고리의 다른 글
[프로그래머스 / lv 2] 타겟 넘버 (JAVA) (0) | 2023.05.08 |
---|---|
[프로그래머스 / lv 1] 문자열 내림차순으로 배치하기 (JAVA) (0) | 2023.04.15 |
[프로그래머스 / lv 0] 문자열 정렬하기(1) (JAVA) (0) | 2023.04.05 |
[프로그래머스 / lv 0] 옹알이(1) (JAVA) (0) | 2023.04.03 |
[백준 / 실버4] 3036 : 링 (JAVA) (0) | 2023.03.27 |