본문 바로가기

verdantjuly/코딩테스트

프로그래머스 코딩테스트 입문 : 합성수 찾기 (javascript, 20230727)

728x90

문제 바로가기: https://school.programmers.co.kr/learn/courses/30/lessons/120846

나의 풀이

function solution(n) {
    let count = 0
    for(i=1;i<=n;i++){    
        let numbers = []
        for(j=1;j<=n;j++){
            if(i%j==0){numbers.push(j)}
        }
        if(numbers.length>2){count = count +1}     
    }
    return count
}

 

다른 사람의 풀이

 

function solution(n) {
    let dp = new Array(n+1).fill(1)
    for(let i = 2 ; i <= n ; i++){
        if(dp[i]){
            for(let j = 2 ; i*j <= n ; j++){
                dp[i*j] = 0
            }
        }
    }

    return dp.filter(el => el === 0).length
}

소감

new Array(arraylength)

fill() 메서드는 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채웁니다.

 

새로운 풀이법 멋지다....