inblog logo
|
silver
    알고리즘문제풀기

    [알고리즘문제풀기] 홀수 vs 짝수

    silver's avatar
    silver
    Mar 03, 2025
    [알고리즘문제풀기] 홀수 vs 짝수
    Contents
    문제내가 작성한 정답다른 사람들의 정답

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/181887

    내가 작성한 정답

    class Solution { public int solution(int[] num_list) { int o = 0, e = 0; for(int i = 0; i<num_list.length; i++){ if(i%2==0) o += num_list[i]; else e += num_list[i]; } return o>=e? o: e; } }

    다른 사람들의 정답

    import java.util.stream.IntStream; class Solution { public int solution(int[] num_list) { return Integer.max(IntStream.iterate(0, i -> i < num_list.length, i -> i + 2) .map(i -> num_list[i]) .sum(), IntStream.iterate(1, i -> i < num_list.length, i -> i + 2) .map(i -> num_list[i]) .sum()); } }
    💡
    IntStream.iterate(int 초기값, IntUnaryOperator 다음 요소를 생성하는 함수) IntStream iterate(int seed, Predicate<Integer> hasNext, IntUnaryOperator f)
    : seed → 초기값 : hasNext → (Optional) 반복을 계속할지 여부를 결정하는 조건(종료 조건). : f → 각 단계에서 적용할 변환 함수.
    주어진 초기값과 다음 값을 생성하는 함수를 사용하여 무한한 정수 스트림을 생성한다. 이 메서드는 주로 반복적인 수열을 생성할 때 유용하다
    IntStream.iterate(0, i -> i + 2) // 초기값0, i에 2를 더하는 함수 무한으로... .limit(num_list.length / 2) // 스트림의 길이를 제한 .forEach(System.out::println); // 각 요소를 출력
    Share article

    silver

    RSS·Powered by Inblog