본문 바로가기
카테고리 없음

프로그래머스 Level 1 - 기사단원의 무기 (Javascript)

by 준벨롭 2023. 12. 1.

문제

답안

function solution(number, limit, power) {
    var answer = [];
    let arr = [];
    
    // 1부터 number까지 수의 약수의 갯수를 구한다.
    for(let i = 1; i <= number; i++){
        let count = 0;
        for(let j = 1; j <= Math.sqrt(i); j++){ // i = 9, j = 1~3
        if(i % j == 0){
            count = count + 2;
            if(j*j == i){
                count = count - 1;
                }
            }
        }
        // 약수의 갯수 arr에 push
        arr.push(count);
    }
        //arr[k]가 limit보다 크면, power의 값을, 아니라면 arr[k]값을 answer에 넣는다.
        for(let k = 0; k < arr.length; k++){
            if(arr[k] > limit){
                answer.push(power);
            } else {
                answer.push(arr[k]);
            }
        }
    //reduce를 이용해 합을 계산
    return answer.reduce((a,b)=>a+b);
}

후기

시간복잡도를 잘 생각해서 풀어야한다.

728x90