1. 문제
2. 제출 답안
class Solution {
public int solution(int[] num_list) {
int product = 1; // 원소들의 곱을 초기화, 0으로 초기화하면 곱도 0이 되기 때문에 안됨
int sum = 0; // 원소들의 합을 초기화
for (int num : num_list) {
product *= num; // 원소들의 곱 계산
sum += num; // 원소들의 합 계산
if (product > sum * sum) {
return 0; // 곱이 합의 제곱보다 크면 0 반환
}
}
return 1; // 모든 원소의 곱이 합의 제곱보다 작으면 1 반환
}
}
3. 다른 풀이
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;
}
}
한 줄 풀이에 진심이신 분..!
1. Arrays.stream(numList)를 사용하여 정수 배열을 스트림으로 변환
2. reduce 함수를 사용하여 스트림의 모든 원소를 곱함
reduce 함수는 람다식 (acc, i) -> acc * i를 사용하여 각 원소를 누적하여 곱셈을 수행
3. getAsInt()를 호출하여 곱의 결과를 정수형으로 변환
4. Arrays.stream(numList).sum()을 사용하여 정수 배열의 모든 원소를 합산
5. Math.pow(Arrays.stream(numList).sum(), 2)를 사용하여 합의 제곱을 계산
6. 조건식을 사용하여 원소들의 곱과 합의 제곱을 비교
원소들의 곱이 합의 제곱보다 작으면 조건은 true가 되고, 그렇지 않으면 false가 됨.
7,. 조건식의 결과에 따라 1 또는 0을 반환
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.0 마지막 두 원소(Java) ※ (0) | 2023.11.01 |
---|---|
[프로그래머스] Lv.0 이어 붙인 수(Java) (0) | 2023.10.25 |
[프로그래머스] Lv.0 주사위 게임2(Java) (0) | 2023.10.25 |
[프로그래머스] Lv.0 등차수열의 특정한 항만 더하기(Java) (1) | 2023.10.25 |
[프로그래머스] Lv.0 코드 처리하기(Java)※ (0) | 2023.10.25 |