개발 기록 남기기✍️

[프로그래머스] 합성수 찾기 본문

코딩 테스트 연습

[프로그래머스] 합성수 찾기

너해동물원 2023. 1. 4. 16:48

🗒️ 문제 설명

약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.

 

 

⚠️ 제한 사항

  • 1 ≤ n ≤ 100

 

👀 입출력 예

n result
10 5
15 8

❇️ 나의 풀이

  • 먼저 1부터 n까지의 수가 key인 객체를 만든다.
  • 각 key를 1부터 key 값까지 나누고, 나머지가 0일 때 obj[i]에 1을 더해준다.
  • 객체를 돌면서, obj[key] >= 3일 때 answer에 1을 더해준다.
function solution(n) {
    let obj = {};
    let answer = 0;
    for(let i=1;i<=n;i++){
        obj[i] = 0;
        for(let j=1;j<=i;j++){
            i % j === 0 ? obj[i]+=1 : obj[i]
        }
    }
    Object.keys(obj).forEach(v => {
        obj[v] >= 3 ? answer+=1 : answer
    })
    return answer
}