본문 바로가기
Algorithm/Programmers

[Programmers] Lv.0 / 가장 큰 수 찾기 / Java

by unknownomad 2024. 6. 17.

문제

 

풀이

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

댓글