Hyundolog

[Programmers] Lv1. 소수 만들기 (JavaScript) 본문

문제 풀이/프로그래머스

[Programmers] Lv1. 소수 만들기 (JavaScript)

hyundol97 2023. 5. 3. 21:10

문제

 

 


 

 

풀이

1차

function solution(nums) {
    let result = 0;
    let idx = 0;
    let arr = [];
    
    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[idx++] = [nums[i], nums[j], nums[k]];
            }
        }
    }
    
    let temp = [...new Set(arr)];
    
    for(let i = 0; i < temp.length; i++) {
        let sum = temp[i][0] + temp[i][1] + temp[i][2];
        let is_prime = false;
        
        for(let j = 2; j <= Math.sqrt(sum); j++) {
            if(sum % j === 0) {
                is_prime = true;
                break;
            }
        }
        
        if(!is_prime) {
            result++;
        }
    }
    
    return result;
}

 

 

2차

function solution(nums) {
    let result = 0;
    let idx = 0;
    let arr = [];
    
    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[idx++] = [nums[i], nums[j], nums[k]];
            }
        }
    }
    
    for(let i = 0; i < arr.length; i++) {
        let sum = arr[i][0] + arr[i][1] + arr[i][2];
        let is_prime = false;
        
        for(let j = 2; j <= Math.sqrt(sum); j++) {
            if(sum % j === 0) {
                is_prime = true;
                break;
            }
        }
        
        if(!is_prime) {
            result++;
        }
    }
    
    return result;
}

 

 


 

리뷰

  • 배열 내부에는 같은 원소가 없음이 전제가 되었으므로, Set 생성 불필요
Comments