Level.0
문제
정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.
제한사항
2 ≤ num_list의 길이 ≤ 201 ≤ num_list의 원소 ≤ 9num_list의 원소를 모두 곱했을 때 2,147,483,647를 넘는 입력은 주어지지 않습니다.
풀이.1
import java.util.stream.*;
class Solution {
public int solution(int[] num_list) {
return num_list.length>10?IntStream.of(num_list).sum():IntStream.of(num_list).reduce(1, (x, y) -> x * y);
}
}
Stream.reduce()
Stream.reduce(accumulator);
Stream.reduce(init, accumulator);
Stream의 모든 요소에 주어진 함수를 반복 적용하여 하나의 데이터로 만드는 작업을 수행한다.
- init : 초기값
- accumulator : 함수
풀이.2
class Solution {
public int solution(int[] num_list) {
int length = num_list.length;
int answer = length>10?0:1;
for(int num : num_list){
if(length>10)
answer += num;
else
answer *= num;
}
return answer;
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/181879
'Algorithm > Programers - Java' 카테고리의 다른 글
[프로그래머스(Java)] 접두사인지 확인하기 / String.startsWith() (0) | 2024.02.26 |
---|---|
[프로그래머스(Java)] 조건에 맞게 수열 변환하기 3 (0) | 2024.02.26 |
[프로그래머스(Java)] 배열의 길이에 따라 다른 연산하기 (1) | 2024.02.26 |
[프로그래머스(Java)] 숨어있는 숫자의 덧셈 (1) / Character.isDigit() (0) | 2024.02.26 |
[프로그래머스(Java)] 문자열 곱하기 / String.repeat(), Collections.nCopies() (1) | 2024.02.26 |