오늘의 알고리즘
[C++]Summer/Winter Coding(~2018)소수 만들기(프로그래머스 1레벨)
하늘하늘 .
2022. 1. 29. 19:57
#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;
}