Programmers[レベル2]小数点を検索
16056 ワード
小数点を検索
問題の説明
せいげんじょうけん
I/O例
I/O例説明
コード#コード#
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
#include <set>
using namespace std;
bool isPrime(int a) {
if (a == 0 || a == 1)return false;
for (int i = 2; i <= sqrt(a); i++) {
if (a % i == 0) return false;
}
return true;
}
int solution(string numbers) {
int answer = 0;
vector<int> vec;
set<int> b;
for (int i = 0; i < numbers.length(); i++) {//numbers 각 자리를 숫자로 분할
vec.push_back(numbers[i] - '0');
}
sort(vec.begin(), vec.end());
do {
// 순열을 돌리면서 index[0], index[0:1]~~index[0:7]이 소수이면 set에 추가,
// 이를 모든 순열에 적용.
int num = 0;
for (int i = 0; i < numbers.length(); i++) {
num += vec[i];
if (isPrime(num)) b.insert(num);
num *= 10;![](https://media.vlpt.us/images/98jihyun/post/dfca4382-8869-4c5a-9768-6c57173c5827/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-27%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.36.26.png)![](https://media.vlpt.us/images/98jihyun/post/3c8bdb1d-ec64-495b-b8b1-7f6b36018f04/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-27%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%205.36.41.png)
}
} while (next_permutation(vec.begin(), vec.end()));
answer = b.size();
return answer;
}
vec.erase(unique(vec.begin(), vec.end()), vec.end());
Reference
この問題について(Programmers[レベル2]小数点を検索), 我々は、より多くの情報をここで見つけました https://velog.io/@98jihyun/Programmerslevel-2-소수찾기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol