문제
풀이
import java.util.Arrays;
class Solution {
public int[] solution(int[] array) {
int max = Integer.MIN_VALUE;
int maxIndex = -1;
for(int i = 0; i < array.length; i++) {
if(array[i] > max) {
max = array[i];
maxIndex = i;
}
}
return new int[]{max, maxIndex};
}
}
IntStream 써보려 했는데
- Java 의 lambda 식 내부에서 지역 변수를 참조할 때, 그 변수는 final 또는 effectively final 이어야 함
- 이는 Java의 규칙으로, 람다 식이 참조하는 변수가 변경되지 않도록 보장하기 위함
- 그래서 for loop 로 푸는 게 더 깔끔하겠다 판단함
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;
}
}
출처
https://school.programmers.co.kr/learn/courses/30/lessons/120899
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] Lv.0 / PCCE / 2번 / 피타고라스의 정리 / Java (0) | 2024.06.18 |
---|---|
[Programmers] Lv.0 / PCCE / 1번 / 출력 / Java (0) | 2024.06.18 |
[Programmers] Lv.0 / 문자열 계산하기 / Java (0) | 2024.06.15 |
[Programmers] Lv.0 / 배열의 유사도 / Java (0) | 2024.06.15 |
[Programmers] Lv.0 / 숫자 찾기 / Java (0) | 2024.06.15 |
댓글