Algorithm/programmers

소수 만들기 ( Level 1, JavaScript, Summer/Winter Coding )

takeU 2021. 7. 31. 14:28
반응형

소수 만들기 ( Level 1 )

Summer/Winter Coding ~2018 ( JavaScript )

문제 링크

 

나의 풀이

function solution(nums) {
    const arr = []
    const isPrime = n => {
        for ( let i = 2; i <= Math.sqrt(n); i++ ) {
            if( n % i === 0 ) return false;
        }
        return true;    
    }

    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++ ) {
                arr.push(nums[i] + nums[j] + nums[k])
            }
        }
    }

    return arr.filter(el => isPrime(el)).length;
}
  1. 숫자 세 개의 합을 담는 arr을 선언한다
  2. 숫자가 소수인지 판별하는 isPrime 함수를 만든다
  3. for문 세개를 중첩해 세 개의 합을 arr에 담는다
  4. arr중 소수만 남긴 후에 배열의 길이를 리턴