반응형
문제출처
https://programmers.co.kr/learn/courses/30/lessons/12977
문제풀이
재귀 함수를 이용해 숫자의 합을 구한뒤 소수 판별을 해주면 되는 간단한 문제
소스코드
#include <vector>
#include <cmath>
using namespace std;
int ans = 0;
bool checkPrime(int number) {
if (number == 1) return false;
if (number == 2) return true;
for (int i=2; i<=sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
void go(vector<int> nums, int startIdx, int depth, int sum) {
if (depth == 3) {
if (checkPrime(sum)) {
ans++;
}
return;
}
for (int i=startIdx; i<nums.size(); i++) {
go(nums, i+1, depth+1, sum+nums[i]);
}
}
int solution(vector<int> nums) {
go(nums, 0, 0, 0);
return ans;
}
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스 17686] - 카카오 파일명 정렬 (0) | 2020.05.28 |
---|---|
[프로그래머스 17683] - 카카오 방금그곡 (0) | 2020.05.27 |
[프로그래머스 43164] - 여행경로 (0) | 2020.05.25 |
[프로그래머스 62049] - 종이접기 (0) | 2020.05.25 |
[프로그래머스 12987] - 숫자 게임 (0) | 2020.05.22 |