#include <vector>
using namespace std;
 
vector<int> Select(vector<int> number,int size)
{
    ++number[2];
 
 	// 위치에 따른 픽 변경
    if (size == number[2])
    {
        ++number[1];
        number[2] = number[1] + 1;
 
        if (size - 1 == number[1])
        {
            ++number[0];
            number[1] = number[0] + 1;
            number[2] = number[0] + 2;
 
            if (size - 2 == number[0])
                return vector<int>({ 0,0,0 });
        }
    }
 
    return number;
}
 
bool Isdecimal(int number)
{
    if (number == 1)
        return false;
 
 	// 소수인지 확인
    for (int i = 2; i < number; ++i)
    {
        if (number % i == 0)
            return false;
    }
 
    return true;
}
 
int solution(vector<int> nums) 
{
    int answer = 0;
    int num = 0;
    int size = nums.size();
    vector<int> number = {0,1,2};
 
    while (number[2])
    {
    	// 벡터 위치에 따른 픽
        num = nums[number[0]] + nums[number[1]] + nums[number[2]];
 
        if (Isdecimal(num))
            ++answer;
 
        number = Select(number, size);
    }
 
    return answer;
}

+ Recent posts