ALGORITHM/코딩 기초 트레이닝

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

jki09871 2024. 7. 31. 14:31

 

아무리 쉬운 코드도 리뷰 합니다.
문제 설명
정수가 담긴 리스트 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 answer = 0;
        int a = 0;
        int b = 1;
        for (int i = 0; i < num_list.length; i++) {
            a = a + num_list[i];
            b = b * num_list[i];
        }
        double pop = Math.pow(a, 2);



        return answer = pop > b ? 1 : 0;
    }
}

설명

  1. for(반복문)을 이용해서 + 와 * 를 계산합니다.
  2. Math.pow()를 이용해 제곱을 해줍니다. (a에, 2를제곱 한다는 뜻)
  3. 삼항 연사자를 통해 제곱된 수가 곱하기 한 수 보다 크면 1를 리턴, 작으면 0리턴 

중요코드

  • Math.pow()를 이용해 제곱을 하는 방법이 정말 편한것 같다.

실행결과

정확성 테스트
테스트 1 통과 (0.05ms, 72.7MB)
테스트 2 통과 (0.05ms, 82.5MB)
테스트 3 통과 (0.06ms, 79MB)
테스트 4 통과 (0.04ms, 77.9MB)
테스트 5 통과 (0.05ms, 76.2MB)
테스트 6 통과 (0.04ms, 77.4MB)
테스트 7 통과 (0.03ms, 73.7MB)
테스트 8 통과 (0.03ms, 75.1MB)
테스트 9 통과 (0.03ms, 71MB)
테스트 10 통과 (0.04ms, 78.6MB)
테스트 11 통과 (0.04ms, 74.6MB)
테스트 12 통과 (0.04ms, 80.1MB)
테스트 13 통과 (0.02ms, 71.7MB)
테스트 14 통과 (0.05ms, 72.7MB)
테스트 15 통과 (0.07ms, 81.7MB)
테스트 16 통과 (0.03ms, 78.4MB)
테스트 17 통과 (0.05ms, 74MB)
테스트 18 통과 (0.08ms, 72.5MB)
테스트 19 통과 (0.03ms, 79.4MB)
테스트 20 통과 (0.04ms, 72.8MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0