오늘이라도
[6일차][프로그래머스, 120835번, Lv. 0] 진료순서 정하기 본문
반응형
문제
내 풀이
import java.util.Arrays;
import java.util.Collections;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] emergency) {
int[] order = IntStream.of(emergency)
.boxed()
.sorted(Collections.reverseOrder())
.mapToInt(value -> value.intValue())
.toArray();
int[] answer = new int[emergency.length];
for(int i = 0; i < order.length; i++) {
for(int j = 0; j < emergency.length; j++) {
if(order[i] == emergency[j]) {
answer[j] = i+1;
}
}
}
return answer;
}
}
채점 결과
피드백
stream만 사용하여 풀어보고 싶었는데 익숙치않아서 정렬까지밖에 stream으로 구현을 못했다
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();
}
}
다른 사람의 풀이를 보니 list의 indexof라는 메서드를 활용하여 stream만 사용하여 풀었다
1. 배열을 스트림으로
2. map으로 맵핑시작
3. i 값을 주어진 배열을 역순으로 정렬한 list의 인덱스와 비교
4. +1하여 배열로 전환
반응형
'개발 공부 > 코딩테스트' 카테고리의 다른 글
[7일차][프로그래머스, 120837번, Lv. 0] 개미 군단 (0) | 2022.12.23 |
---|---|
[6일차][프로그래머스, 120836번, Lv. 0] 순서쌍의 개수 (0) | 2022.12.22 |
[6일차][프로그래머스, 120834번, Lv. 0] 외계행성의 나이 (0) | 2022.12.22 |
[6일차][프로그래머스, 120833번, Lv. 0] 배열 자르기 (0) | 2022.12.22 |
[6일차][프로그래머스, 120831번, Lv. 0] 짝수의 합 (1) | 2022.12.22 |