꺾이지 않는 마음

[프로그래머스] Lv.0 합성수 찾기 JS 풀이 본문

코딩테스트 기록

[프로그래머스] Lv.0 합성수 찾기 JS 풀이

중요한 것은 2022. 10. 28. 00:59

🧡문제 설명

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

💛제한사항

  • 1 ≤ n ≤ 100

💚입출력 예

n result
10 5
15 8

💙입출력 예 설명

입출력 예 #1

  • 10 이하 합성수는 4, 6, 8, 9, 10 로 5개입니다. 따라서 5를 return합니다.

입출력 예 #1

  • 15 이하 합성수는 4, 6, 8, 9, 10, 12, 14, 15 로 8개입니다. 따라서 8을 return합니다.

✨나의 풀이

💜 반복문 중첩 활용

function solution(n) {
    let answer = 0;
    let isChecked = false;
    for (let i = 4; i <= n; i++) {
        isChekced = false;
        for (let j = 2; j < i; j++) {
            if (i%j === 0 && count === 0) {
                isChecked = true;
                answer += 1;
            }
        }
    }
    return answer;
}

 

합성수는 1과 자신 외에 다른 약수를 가진 수를 일컫는다.

2보다 크고 n보다 작은 약수가 1개라도 있으면 그 대상은 합성수가 된다.

이 점을 이용해서 중첩 반복문을 돌린 후, 2보다 크고 n보다 작은 약수가 하나라도 있으면 answer에 +1을 해주었다.

약수가 여러개인 수도 있으므로 한번 answer에 +1이 되면 중복으로 더해지지 못하도록 isChecked 변수를 만들어서 스위치 역할을 부여하였다.

 

 

Comments