개인 공부/프로그래머스
[프로그래머스] 원소들의 곱과 합
개발 기록
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로부터 배열의 요소를 각각 받아서 더하는 연산을 수행한다
연산이 끝난 뒤 결과값이 나온다