programmers.co.kr/learn/courses/30/lessons/12977
#include <vector>
#include <algorithm>
#include<set>
#include<math.h>
#include <iostream>
using namespace std;
bool isPrime(int n){
if(n <2) return false;
for(int i=2; i<=sqrt(n); i++){
if(n%i == 0) return false;
}
return true;
}
int solution(vector<int> nums) {
int answer = 0;
set<int> s;
vector<int> v;
int cnt = 0;
for(int i=0; i< nums.size(); i++){
for(int j = i+1; j <nums.size() ; j++){
for(int k = j +1; k < nums.size() ;k++){
answer = nums[i] + nums[j] + nums[k];
v.push_back(answer) ;
}
}
}
for(int i=0; i< v.size() ;i++){
if(isPrime(v[i])){
cnt ++;
}
}
return cnt;
}
- nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
- 이 조건을 못보고 더해서 set에 넣었는데 굳이 안그래도 되며
- 처음엔 순열조합해서 풀었는데 그러면 시간초과 난다;;;;;;;;;;;
'코딩테스트 준비' 카테고리의 다른 글
9093_단어뒤집기 c++백준 (0) | 2021.05.28 |
---|---|
백준 1152_단어의개수 c++ (0) | 2021.05.25 |
1026_보물 백준 c++ (0) | 2021.04.16 |
백준 12845_모두의마블 (0) | 2021.01.09 |
2217_로프 백준 Greedy (0) | 2021.01.08 |