문제
풀이
#include <vector>
#include <iostream>
#include <cmath>
using namespace std;
bool sosu(int num) {
if (num < 2) return false;
int a = (int) sqrt(num);
for (int i = 2; i <= a; i++) if (num % 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 z=j+1; z<nums.size(); z++){
if(sosu(nums[i] + nums[j] + nums[z])) answer++;
}
}
}
return answer;
}
소수를 찾는 함수를 만들 때, 루트를 한번 씌우고 반복문을 사용하면 더 빠르게 소수를 판별할 수 있었다.
https://notepad96.tistory.com/entry/C-%EC%86%8C%EC%88%98-%ED%8C%90%EB%B3%84%ED%95%98%EA%B8%B0
'Algorithm > Programers - C++' 카테고리의 다른 글
[프로그래머스]완전탐색 - 모의고사 (0) | 2022.01.27 |
---|---|
[프로그래머스]정렬 - K번째수 (0) | 2022.01.26 |
[프로그래머스]내적 & 없는숫자 더하기 / 범용 수치 알고리즘 (0) | 2022.01.24 |
[프로그래머스]로또의 최고 순위와 최저 순위 (0) | 2022.01.23 |
[프로그래머스] 해시1-완주하지 못한 선수 (0) | 2022.01.01 |