[Programmers] 소수만들기

Algorithm|2021. 11. 17. 15:25
반응형

 

 

코딩테스트 연습 - 소수 만들기

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때

programmers.co.kr

브루트 포스 O(n³) 말고는 방법이 잘 생각나지 않는다.

투 포인터로 접근하는 문제는 아닌 듯하다.

bool is_Prime(int n);

int solution(vector<int> nums) 
{
    int answer = 0;
    
    for(int i=0; i<nums.size()-2; i++)
        for(int j=i+1; j<nums.size()-1; j++)  
            for(int k=j+1; k<nums.size(); k++)
                if(is_Prime(nums[i] + nums[j] + nums[k]))
                    answer++;
    return answer;
}

bool is_Prime(int n)
{
    for(int i=2; i<=sqrt(n); i++)
        if(n%i == 0)
            return false;
    
    return true;
    
}
반응형

'Algorithm' 카테고리의 다른 글

[백준] 6321. IBM 빼기 1  (0) 2021.11.17
[Leetcode] 844. Backspace String Compare  (0) 2021.11.17
[백준] 1157. 단어 공부  (0) 2021.11.16
[백준] 1316. 그룹 단어 체커  (0) 2021.11.16
[백준] 1159. 농구경기  (0) 2021.11.15

댓글()