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

silver's avatar
Mar 03, 2025
[알고리즘문제풀기] 홀수 vs 짝수

문제

내가 작성한 정답

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