Coding test Practice33

프로그래머스 소수만들기

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

function isPrime(num) {
    for(let i = 2; i <= Math.sqrt(num); i++) {
        if(num % i === 0) {
            return false
        }
    }
    return true;
}

function solution(nums) {
    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++) {
                let sum = nums[i] + nums[j] + nums[k];
                if(isPrime(sum)) {
                    result = result + 1;
                }
            }
        }
    }
    return result;
}

문제풀이
소수의 개수를 담아줄 변수 result를 선언하고 3중 반복문으로 nums에서 3개를 뽑아서 더해준 값을 sum으로 할당하고 소수 판별식을 호출하여 sum의 소수여부를 판정하여 소수이면 result에 1을 더해주고 아니면 넘어간다. 반복문을 완료하면 result를 리턴한다.

좋은 웹페이지 즐겨찾기