Level. 0
문제
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다.
정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
* 제한사항
- 중복된 원소는 없습니다.
- 1 ≤ emergency의 길이 ≤ 10
- 1 ≤ emergency의 원소 ≤ 100
풀이
import java.util.Arrays;
class Solution {
public int[] solution(int[] emergency) {
int size = emergency.length;
int[] answer = new int[size];
int[] rank = emergency.clone();
Arrays.sort(rank);
for(int i=size-1; i>=0; i--){
for(int j = 0; j<size; j++){
if(rank[i] == emergency[j]) {
answer[j] = size-i;
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();
}
}
ArrayList의 indexOf 메서드를 사용하여 해당 데이터의 순서를 구할 수 있었다.
https://school.programmers.co.kr/learn/courses/30/lessons/120835
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] 옹알이 (1) (0) | 2023.10.29 |
---|---|
[프로그래머스(Java)] 배열의 길이를 2의 거듭제곱으로 만들기 / Arrays.copyOf() (0) | 2023.10.25 |
[프로그래머스(Java)] 정수를 나선형으로 배치하기 (0) | 2023.10.25 |
[프로그래머스(Java)] 평행 (0) | 2023.10.25 |
[프로그래머스(Java)] 겹치는 선분의 길이 / map.merge() (1) | 2023.10.24 |