algorithm

정종찬·2022년 4월 19일
0

// 주어진 숫자 중 3개의 수를 더했을때 //
// 소수가 되는 경우의 개수를 구하려고 합니다. //
// 숫자들이 들어있는 배열 nums 가 매개변수로 주어질때, nums 에 있는 숫자들 중
// 서로 다른 3개를 골라 더 했을때 소수가 되는 경우의 갯수를 return 하도록 solution 함수를 완성해주세요.

// 소수 : 나누었을때 자신과 1 만 나오는 수

// 제한사항
// nums 에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
// nums 의 각 원소는 1이상 1000 이하의 자연수 이며, 중복된 숫자가 들어있지 않습니다.

// 입출력 예 numsresult

// #1. [1,2,3,4] 1 =>
// #2. [1,2,7,6,4] 4 =>

// 입출력 예 #1 설명
// [1,2,4]를 이용해서 7을 만들 수 있습니다.
// 입출력 예 #2 설명
// [1,2,4]를 이용해서 7을 만들 수 있습니다.
// [1,4,6]를 이용해서 11을 만들 수 있습니다.
// [2,4,7]를 이용해서 13을 만들 수 있습니다.
// [4,6,7]를 이용해서 7을 만들 수 있습니다.


solution([1, 2, 7, 6, 4]);

function checkPrimeNumber(num) // 그 숫자가 소수인지 판단하는 코드
{
    // 17  = 1, 17로만 나누어 떨어지는 숫자 소수가 아닌 숫자를 찾자
    for(let i = 2; i < num; i++)
    {
        if(num % i == 0)
        {
            return false;
        }
    }
    return true;
}

function solution(nums) 
{
    let sumNumber = 0;
    let result = 0;
    // 숫자 세개를 골라서 합하는 코드 
    for(let i = 0; i < nums.length; i++)
    {
        for(let j = i + 1; j < nums.length; j++)
        {
            for(let k = j + 1; k < nums.length; k++)
            {
                sumNumber = nums[i] + nums[j] + nums[k];
                if(checkPrimeNumber(sumNumber))
                {
                    result++;
                }
                console.log(sumNumber);
            }
        }
    }    
    console.log(result);
    return result;
}

한번에 풀려고 생각하지말고 나눠서 생각하기
함수는 한번에 한기능씩 넣기

profile
dalssenger

0개의 댓글

관련 채용 정보