프로그래머스 문제 풀이

Lv0 - 원소들의 곱과 합

Dotae1 2025. 2. 7. 18:49

문제 설명

아직 부족한 나의 지식으로 어찌저찌 풀다보니 더 쉬운 방법이 있을거같은데 코드가 너무 길어져버렸다.

public int solution(int[] num_list) {
        int answer = 0;
        int[] ans = new int[num_list.length];
        int a = 1;
        int b = 0;
        int c = 0;

        for(int i=0; i<num_list.length;i++){
            ans[i] = num_list[i];
        }
        for(int i = 0;i<ans.length;i++){
            a*=ans[i];
        }
        for(int i=0;i<ans.length;i++){
            b+=ans[i];
        }
        c = b*b;
        if(a<c) {
            answer = 1;
        } else answer = 0;

        return answer;
    }
}

1. 새로운 배열을 선언한 뒤 num_list에 있는 원소들을 옮겨 담았다.

2. a와 b에 각각 원소들의 곱과 합을 담았다.

3. if문을 통해 answer를 0으로 return할지 1로 return할지 결정했다.

하지만 코드가 너무 길고 불필요한 부분이 너무 많다고 생각이 들어 다른사람들의 풀이를 참고했다.

class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        int a = 1, b = 0;

        for ( int i = 0; i < num_list.length; i++ ) {
            a *= num_list[i];
            b += num_list[i];
        }

        b = b * b;

        if ( a < b ) {
            answer = 1;
        }

        return answer;
    }
}

지금 내 수준에서는 이렇게 푸는게 제일 깔끔하게 푸는 코드방식이지 않을까 생각이 들어서 올려봅니다.