프로그래머스 : 홀수 vs 짝수

김아무개·2023년 6월 3일
0

프로그래머스

목록 보기
40/41

스트림 어렵다 ;-;

내 코드

import java.util.Arrays;
import java.util.stream.IntStream;

class Solution {
    public int solution(int[] num_list) {
        return Math.max(
                IntStream
                        .range(0, num_list.length)
                        .filter(i -> i % 2 == 0)
                        .map(i -> num_list[i])
                        .sum()
                , 
                IntStream
                        .range(0, num_list.length)
                        .filter(i -> i % 2 != 0)
                        .map(i -> num_list[i])
                        .sum()
        );
    }
}

스트림을 한개만 열어서 작성해보고 싶었는데,

도저히 방법이 떠오르지 않았다.


다른사람 코드 구경!

다른 사람 풀이

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()
              );
    }
}

오호
iterate를 사용하면 for문에서 조건절?? 입력하듯이 작성할 수 있다!

profile
Hello velog! 

0개의 댓글