Post

[Programmers] #181879 - 길이에 따른 연산 [Java][C++][Python]

정수 리스트의 길이가 11 이상이면 모든 원소의 합을, 그렇지 않으면 모든 원소의 곱을 구하는 워밍업 문제.

[Programmers] #181879 - 길이에 따른 연산 [Java][C++][Python]

문제 링크


1. 아이디어

리스트의 길이를 확인해 11 이상이면 전체 원소의 합을, 10 이하이면 전체 원소의 곱을 계산해 return한다. 원소를 모두 곱해도 32비트 정수 범위를 넘지 않음이 보장되므로 오버플로우는 따로 다루지 않는다.


2. 복잡도

접근시간공간
풀이$O(N)$$O(1)$

($N$ = num_list의 길이)


3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
    public int solution(int[] num_list) {
        if (num_list.length >= 11) {
            int sum = 0;
            for (int x : num_list) {
                sum += x;
            }
            return sum;
        } else {
            int mul = 1;
            for (int x : num_list) {
                mul *= x;
            }
            return mul;
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;

int solution(vector<int> num_list) {
    if (num_list.size() >= 11) {
        int sum = 0;
        for (int x : num_list) {
            sum += x;
        }
        return sum;
    } else {
        int mul = 1;
        for (int x : num_list) {
            mul *= x;
        }
        return mul;
    }
}
1
2
3
4
5
6
7
8
import math


def solution(num_list):
    if len(num_list) >= 11:
        return sum(num_list)
    else:
        return math.prod(num_list)

This post is licensed under CC BY 4.0 by the author.