티스토리 뷰
title: "소수 만들기"
category: 프로그래머스[Level-2]
tags: [C++, JavaScript, 프로그래머스]
date: "2021-02-01"
문제 링크
C++
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int solution(vector<int> nums) {
int answer = 0;
string condi(nums.size(), '1');
condi.replace(0, 3, "000");
do{
// 조합
int sum=0;
for(int i=0; i<condi.length(); i++){
if(condi[i]=='0') sum+=nums[i];
}
// 소수 판별
bool isPrime=true;
for(int i=2; i<=sqrt(sum); i++){
if(sum%i==0){
isPrime=false;
break;
}
}
if(isPrime) answer++;
}while(next_permutation(condi.begin(), condi.end()));
return answer;
}
JavaScript
function solution(nums) {
var answer = 0;
for (let i = 0; i < nums.length - 2; i++) {
for (let j = i + 1; j < nums.length - 1; j++) {
for (let k = j + 1; k < nums.length; k++) {
// 조합
const sum = nums[i] + nums[j] + nums[k];
// 소수 판별
let isPrime = true;
for (let m = 2; m <= parseInt(Math.sqrt(sum)); m++) {
if (sum % m === 0) {
isPrime = false;
break;
}
}
if (isPrime) answer++;
}
}
}
return answer;
}
728x90
반응형
'Programmers Solutions > Level-2' 카테고리의 다른 글
[프로그래머스] 영어 끝말잇기 (0) | 2021.02.04 |
---|---|
[프로그래머스] 점프와 순간 이동 (0) | 2021.02.04 |
[프로그래머스] 짝지어 제거하기 (0) | 2021.02.04 |
[프로그래머스] N개의 최소공배수 (0) | 2021.02.03 |
[프로그래머스] JadenCase 문자열 만들기 (0) | 2021.02.03 |
댓글