Level. 0
문제
정수 리스트 num_list가 주어집니다.
가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요.
두 값이 같을 경우 그 값을 return합니다.
* 제한사항
- 5 ≤ num_list의 길이 ≤ 50
- -9 ≤ num_list의 원소 ≤ 9
풀이1
class Solution {
public int solution(int[] num_list) {
int num1=0, num2=0;
for(int i=0; i<num_list.length; i++){
if(i%2==0)num1 += num_list[i];
else num2 += num_list[i];
}
return Math.max(num1, num2);
}
}
풀이2. - stream
import java.util.stream.IntStream;
class Solution {
public int solution(int[] num_list) {
return Math.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());
}
}
Stream.iterate()
static <T> Stream <T> iterate(T Seed, Predicate <? super T> hasNext, UnaryOperator <T> next)
- 특정한 연산을 반복적으로 수행할 때 사용한다.
- seed : 초기값
- hasNext : 스트림이 종료되어야 하는 조건
- next : 값을 변경시킬 람다 함수
https://strong-2-min.tistory.com/466
https://school.programmers.co.kr/learn/courses/30/lessons/181887
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] 순서 바꾸기 (0) | 2024.01.21 |
---|---|
[프로그래머스(Java)] 배열의 원소 삭제하기 / anyMatch() (0) | 2024.01.21 |
[프로그래머스(Java)] 가까운 1 찾기 / findFirst(), orElse() (1) | 2024.01.14 |
[프로그래머스(Java)] 인덱스 바꾸기 / toCharArray(), String.valueOf() (0) | 2024.01.14 |
[프로그래머스(Java)] 문자열 정렬하기 (1) / replaceAll() (0) | 2024.01.14 |