최대 1 분 소요

Question

Q


Solution

  • 세개의 수를 뽑아야 하기 때문에 삼중 for문을 사용하여야 한다.
  • 세개의 수를 합한 값이 소수인지 체크하여 결과를 출력하면 된다.

Cord

#include <vector>
#include <iostream>

using namespace std;

bool primeNumSeive(int sum)
{
    for(int i = 2; i * i <= sum; i++)
    {
        if (sum % i == 0) { return false; }
    }
    
    return true;
}

int solution(vector<int> nums) 
{
    int answer = 0;
    
    // 세 개의 수의 합
    for(int i = 0; i < nums.size() - 2; i++)
    {
        for(int j = i + 1; j < nums.size() - 1; j++)
        {
            for(int k = j + 1; k < nums.size(); k++)
            {
                int sum = nums[i] + nums[j] + nums[k];
                if (primeNumSeive(sum)) 
                {
                    answer++;
                }
            }
        }
    }
    
    return answer;
}

Result

Result