코딩테스트/프로그래머스 | Lv. 0

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

리키권 2024. 12. 3. 12:33

문제 설명

정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.


제한사항

2 ≤ num_list의 길이 ≤ 10
1 ≤ num_list의 원소 ≤ 9


입출력 예

num_list result
[3, 4, 5, 2, 1] 1
[5, 7, 8, 3] 0


입출력 예 설명

- 입출력 예 #1
모든 원소의 곱은 120, 합의 제곱은 225이므로 1을 return합니다.
- 입출력 예 #2
모든 원소의 곱은 840, 합의 제곱은 529이므로 0을 return합니다.

 

제출답안 및 설명

class Solution {
    // 배열의 모든 원소의 곱과 합의 제곱을 비교하여 결과를 반환하는 메소드
    public int solution(int[] num_list) {
        // 결과값을 저장할 변수 (사용되지 않음 - 중복 코드)
        int result = 0;
        
        // 모든 원소의 곱을 저장할 변수 (1로 초기화하여 곱셈 시작)
        int multiple = 1;
        
        // 모든 원소의 합을 저장할 변수
        int add = 0;
        
        // 향상된 for문을 사용하여 배열의 모든 원소를 순회
        for (int num : num_list) {
            multiple *= num;    // 현재 원소를 곱함
            add += num;         // 현재 원소를 더함
        }
        
        // 삼항 연산자를 사용하여 최종 결과 반환
        // 모든 원소의 곱이 합의 제곱보다 작으면 1, 아니면 0 반환
        return multiple < (add*add) ? 1 : 0;
    }
}