[C++] 프로그래머스 길이에 따른 연산

문제설명

정수가 담긴 리스트 num_list가 주어질 때,
리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을
10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.


제한사항

• 2 ≤ num_list의 길이 ≤ 20
• 1 ≤ num_list의 원소 ≤ 9
• num_list의 원소를 모두 곱했을 때 2,147,483,647를 넘는 입력은 주어지지 않습니다.


입출력 예

num_list result
[3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1] 51
[2, 3, 4, 5] 120


풀이

리스트의 길이가 11 이상이면 모든 원소의 합을 return하고 10 이하면 모든 원소의 곱을 return하는 로직을 구현하는 구현 문제입니다.

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> num_list) {
    int answer = 0;
    
    for(int i = 0; i < num_list.size(); i++)
    {
        if(num_list.size() >= 11)
        {
            answer += num_list[i];
        }
        else
        {
            if(answer == 0)
                answer = 1;
            answer *= num_list[i];
        }
    }
    
    return answer;
}


결과

코드 실행결과

Categories:

Updated:

Leave a comment