728x90
반응형
#include <vector>
#include <iostream>
using namespace std;
bool isPrime(int n){
if(n == 0 || n == 1) return false;
for(int i=2; i*i <= n; i++){
if(n%i == 0) return false;
}
return true;
}
int solution(vector<int> nums) {
int answer = 0;
//1 주어진 배열에서 서로 다른 원소 3개를 골라 가능한 합을 모두 구한다
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++){
int n = nums[i] + nums[j] + nums[k];
if(isPrime(n) == true) answer++;
}
}
}
return answer;
}
*생각치 못했던 점
1. isPrime()함수에서 i=2부터 시작해도 되고, n이 0 또는 1 인 경우에도 소수가 아님을 구별해 내야 함
2. solution()함수에서 for문의 중복에서 초기 값 설정 부분.
*느낀 점
원래는 주어진 nums 배열에서 서로 다른 원소 3개를 골라 가능한 합을 모두 구한 뒤,
또 다른 temp 배열에 차례대로 넣고,
temp배열에서 소수판별하려 했다.
근데 굳이 temp 배열을 만들 필요가 없는 것 같기도 하다.
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]최대공약수와최대공배수-Python3 (0) | 2021.07.29 |
---|---|
[프로그래머스]짝수와홀수-Python3 (0) | 2021.07.29 |
[프로그래머스]완주하지못한선수-Python3 (0) | 2021.07.29 |
[프로그래머스]3진법뒤집기-Python3 (0) | 2021.07.29 |
[프로그래머스]약수의개수와덧셈-Python3 (0) | 2021.07.29 |