Develop

[프로그래머스] 원소들의 곱과 합 본문

개인 공부/프로그래머스

[프로그래머스] 원소들의 곱과 합

개발 기록 2024. 1. 19. 22:31

문제

 

 

내 풀이

class Solution {
    public int solution(int[] num_list) {
        int sum = 0;
        int mul = 1;
        for(int a : num_list){
            mul *= a;
            sum += a;
        }
        sum *= sum;
        return mul < sum? 1 : 0;
    }
}

 

느낀점

        sum *= sum;
        return mul < sum? 1 : 0;

 

부분을

return mul < sum*sum? 1 : 0;

 

이렇게 줄여서 return 하는 것이 더 좋아보인다

 

다른 풀이

import java.util.Arrays;

class Solution {
    public int solution(int[] numList) {
        return (Arrays.stream(numList).reduce((acc, i) -> acc * i).getAsInt() < Math.pow(Arrays.stream(numList).sum(), 2)) ? 1 : 0;
    }
}

 

 

느낀점

 

stream 과 삼항연산자를 사용해서 간결하게 표현 잘했다

 

.reduce()은 누적계산에 사용된다

ex)

Arrays.stream(arr).reduce((a,b) -> a+b).getAsInt() 를 입력하면

a와 b로부터 배열의 요소를 각각 받아서 더하는 연산을 수행한다 

연산이 끝난 뒤 결과값이 나온다