๋ฌธ์
์ฝ๋
#include <vector>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
int solution(vector<int> nums) {
int answer = 0;
map<int,bool> prime;
for(int i=0; i<=2997; i++) prime[i] = true;
prime[0] = prime[1] = false;
for(int i=2; i<=2997; i++){ //์์ ์ ์ฅ
if(prime[i]==true){
int k = 2;
while(i*k <=2997){
prime[i*k] = false;
k++;
}
}
}
for(int a=0; a<nums.size()-2; a++){
for(int b=a+1; b<nums.size()-1; b++){
for(int c=b+1; c<nums.size(); c++){
int check_num = nums[a] + nums[b] + nums[c];
if(prime[check_num]) answer++;
}
}
}
return answer;
}
ํ์ด(22๋ถ)
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ํ์ฉํ์ฌ ์์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์์ต๋๋ค. ๊ฐ๋จํ ๋ฌธ์ ์๋๋ฐ, ์ผ๋จ ์๋ผํ ์คํ ๋ค์ค ์๊ณ ๋ฆฌ์ฆ์ด ๋ ์ค๋ฅด์ง ์์์ ์๊ฐ์ด ์ข ๊ฑธ๋ ธ๊ณ , ์ฒ์ ์์๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์ nums์์ ๊ณ ๋ฅผ ์ ์๋ ์ต๊ณ ์ ๊ฒฝ์ฐ์ธ 1000+999+998 = 2997๋งํผ ๊ตฌํด์ผ ํ๋๋ฐ 1000์ผ๋ก ์ค์ ํ๋ค๊ฐ ์๊ฐ์ ์ข ๊น๋จน์์ต๋๋ค. ์ฌํผ ์ด๋ฒ ๋ฌธ์ ๋ฅผ ๊ณ๊ธฐ๋ก ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ๋ค์ ํ๋ฒ ๊ธฐ์ตํด์ผ๊ฒ ์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ํ๋ก๊ทธ๋๋จธ์ค(Programmers)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ์ฐพ๊ธฐ(Level 2) (0) | 2022.04.13 |
---|---|
[c++] ํ๋ก๊ทธ๋๋จธ์ค - [1์ฐจ] ๋น๋ฐ ์ง๋(Level 1) (0) | 2022.04.13 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - 3์ง๋ฒ ๋ค์ง๊ธฐ(Level 1) (0) | 2022.04.13 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์(Level 1) (0) | 2022.04.10 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ํคํจ๋ ๋๋ฅด๊ธฐ(Level 1) (0) | 2022.04.10 |
[c++] ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ(Level 1) (0) | 2022.04.08 |
๋๊ธ