- 내 풀이
class Solution {
public int[] solution(int[] array) {
int[] answer = {};
answer = new int[2];
int max = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] > max){
max = array[i];
answer[0] = array[i];
answer[1] = i;
}
}
return answer;
}
}
코드를 더 줄여보고 싶었는데 이것저것 하다가 실패했다...ㅠ
- 다른 사람 풀이
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int[] solution(int[] array) {
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());
int max = list.stream().max(Integer::compareTo).orElse(0);
int index = list.indexOf(max);
return new int[] {max, index};
}
}
import java.util.AbstractMap;
import java.util.Map;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] array) {
return IntStream.range(0, array.length)
.mapToObj(i -> new AbstractMap.SimpleEntry<>(i, array[i]))
.max(Map.Entry.comparingByValue())
.map(entry -> new int[]{entry.getValue(), entry.getKey()})
.orElseThrow();
}
}
class Solution {
public int[] solution(int[] array) {
int[] answer = new int[2];
for(int i=0;i<array.length;i++) {
if(array[i] > answer[0]) {
answer[0] = array[i];
answer[1] = i;
}
}
return answer;
}
}
나는 기본코드 틀을 변경하지 않고 코드를 실행하는 것을 지양하고 있지만 참고하라고 stream으로 해결한 분들의 코드를 남겨둔다
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 피자 나눠 먹기(2) (0) | 2023.03.10 |
---|---|
[프로그래머스 - JAVA] 외계행성의 나이 (0) | 2023.03.10 |
[프로그래머스 - JAVA] 배열 회전시키기 (0) | 2023.03.10 |
[프로그래머스 - JAVA] 인덱스 바꾸기 (0) | 2023.03.10 |
[프로그래머스 - JAVA] 최댓값 만들기(2) (0) | 2023.03.10 |
댓글