완전탐색
소수 찾기
1차 시도
#include <string>
#include <vector>
#include <cmath>
#include <unordered_set>
#include <algorithm>
using namespace std;
bool isPrime(int num) {
for (int i=2; i<=sqrt(num); i++) {
if (num%i == 0) return false;
}
return true;
}
int solution(string numbers) {
int answer = 0;
unordered_set <int> list;
do {
for (int i=1; i<=numbers.size(); i++) {
int now_number = stoi(numbers.substr(0,i));
if (list.find(now_number) == list.end()) {
list.insert(now_number);
}
}
} while (next_permutation(numbers.begin(), numbers.end()));
for (auto n : list) {
if (isPrime(n)) answer++;
}
return answer;
}
정확성 테스트
테스트 1 〉 실패 (0.02ms, 3.94MB)
테스트 2 〉 실패 (0.49ms, 3.93MB)
테스트 3 〉 실패 (0.01ms, 3.96MB)
테스트 4 〉 실패 (0.03ms, 3.94MB)
테스트 5 〉 통과 (0.01ms, 3.94MB)
테스트 6 〉 통과 (0.01ms, 3.92MB)
테스트 7 〉 실패 (0.02ms, 3.94MB)
테스트 8 〉 통과 (0.01ms, 3.96MB)
테스트 9 〉 실패 (0.01ms, 3.97MB)
테스트 10 〉 실패 (0.66ms, 3.93MB)
테스트 11 〉 실패 (0.01ms, 3.93MB)
테스트 12 〉 실패 (0.02ms, 3.94MB)
채점 결과
정확성: 25.0
합계: 25.0 / 100.0
2차 시도
#include <string>
#include <vector>
#include <cmath>
#include <unordered_set>
#include <algorithm>
using namespace std;
bool isPrime(int num) {
if (num < 2) return false;
for (int i=2; i<=sqrt(num); i++) {
if (num%i == 0) return false;
}
return true;
}
int solution(string numbers) {
int answer = 0;
unordered_set <int> list;
do {
for (int i=1; i<=numbers.size(); i++) {
int now_number = stoi(numbers.substr(0,i));
if (list.find(now_number) == list.end()) {
list.insert(now_number);
}
}
} while (next_permutation(numbers.begin(), numbers.end()));
for (auto n : list) {
if (isPrime(n)) answer++;
}
return answer;
}
정확성 테스트
테스트 1 〉 통과 (0.03ms, 3.98MB)
테스트 2 〉 통과 (0.56ms, 3.94MB)
테스트 3 〉 통과 (0.02ms, 3.96MB)
테스트 4 〉 통과 (0.02ms, 3.95MB)
테스트 5 〉 통과 (0.01ms, 3.94MB)
테스트 6 〉 통과 (0.01ms, 3.82MB)
테스트 7 〉 실패 (0.02ms, 3.96MB)
테스트 8 〉 통과 (0.01ms, 3.96MB)
테스트 9 〉 통과 (0.01ms, 3.94MB)
테스트 10 〉 실패 (0.69ms, 3.92MB)
테스트 11 〉 실패 (0.01ms, 3.78MB)
테스트 12 〉 실패 (0.01ms, 3.95MB)
채점 결과
정확성: 66.7
합계: 66.7 / 100.0
3차 시도
#include <string>
#include <vector>
#include <cmath>
#include <unordered_set>
#include <algorithm>
using namespace std;
bool isPrime(int num) {
if (num < 2) return false;
for (int i=2; i<=sqrt(num); i++) {
if (num%i == 0) return false;
}
return true;
}
int solution(string numbers) {
int answer = 0;
unordered_set <int> list;
sort(numbers.begin(), numbers.end());
do {
for (int i=1; i<=numbers.size(); i++) {
int now_number = stoi(numbers.substr(0,i));
if (list.find(now_number) == list.end()) {
list.insert(now_number);
}
}
} while (next_permutation(numbers.begin(), numbers.end()));
for (auto n : list) {
if (isPrime(n)) answer++;
}
return answer;
}
정확성 테스트
테스트 1 〉 통과 (0.02ms, 3.95MB)
테스트 2 〉 통과 (0.49ms, 3.95MB)
테스트 3 〉 통과 (0.01ms, 3.96MB)
테스트 4 〉 통과 (0.03ms, 3.96MB)
테스트 5 〉 통과 (0.01ms, 3.95MB)
테스트 6 〉 통과 (0.02ms, 3.95MB)
테스트 7 〉 통과 (0.02ms, 3.96MB)
테스트 8 〉 통과 (0.01ms, 3.95MB)
테스트 9 〉 통과 (0.02ms, 3.96MB)
테스트 10 〉 통과 (0.64ms, 3.96MB)
테스트 11 〉 통과 (0.10ms, 3.95MB)
테스트 12 〉 통과 (0.04ms, 3.98MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
카펫
1차 시도
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer = {0, 0};
for (int i=1; ;i++) {
int j = yellow / i;
if (i * 2 + j * 2 + 4 == brown) {
if (i < j) {
return {j + 2, i + 2};
} else {
return {i + 2, j + 2};
}
}
}
return answer;
}
정확성 테스트
테스트 1 〉 통과 (0.01ms, 3.76MB)
테스트 2 〉 실패 (0.01ms, 3.94MB)
테스트 3 〉 실패 (0.01ms, 3.7MB)
테스트 4 〉 통과 (0.02ms, 3.76MB)
테스트 5 〉 통과 (0.01ms, 3.93MB)
테스트 6 〉 통과 (0.01ms, 3.94MB)
테스트 7 〉 통과 (0.01ms, 3.94MB)
테스트 8 〉 실패 (0.01ms, 3.96MB)
테스트 9 〉 실패 (0.01ms, 3.96MB)
테스트 10 〉 실패 (0.01ms, 3.95MB)
테스트 11 〉 통과 (0.01ms, 3.93MB)
테스트 12 〉 통과 (0.01ms, 3.96MB)
테스트 13 〉 통과 (0.01ms, 3.93MB)
채점 결과
정확성: 61.5
합계: 61.5 / 100.0
2차 시도
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer = {0, 0};
for (int i=1; ;i++) {
if (yellow % i != 0) continue;
int j = (int) yellow / i;
if (i * 2 + j * 2 + 4 == brown) {
if (i < j) {
return {j + 2, i + 2};
} else {
return {i + 2, j + 2};
}
}
}
return answer;
}
정확성 테스트
테스트 1 〉 통과 (0.01ms, 3.91MB)
테스트 2 〉 통과 (0.01ms, 3.95MB)
테스트 3 〉 통과 (0.01ms, 3.96MB)
테스트 4 〉 통과 (0.01ms, 3.97MB)
테스트 5 〉 통과 (0.01ms, 3.91MB)
테스트 6 〉 통과 (0.01ms, 3.95MB)
테스트 7 〉 통과 (0.01ms, 3.96MB)
테스트 8 〉 통과 (0.01ms, 3.97MB)
테스트 9 〉 통과 (0.01ms, 3.92MB)
테스트 10 〉 통과 (0.01ms, 3.98MB)
테스트 11 〉 통과 (0.01ms, 3.95MB)
테스트 12 〉 통과 (0.01ms, 3.96MB)
테스트 13 〉 통과 (0.01ms, 3.96MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0