728x90
반응형
📕문제 설명
약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수 를 return하도록 solution 함수를 완성해주세요.
📗제한사항
- 1 ≤ n ≤ 100
📘입출력 예와 설명
n | result | 설명 | ||||||
10 | 5 | 10이하 합성수는 4,6,6,9,10 로 5개입니다. 따라서 5를 return합니다. | ||||||
15 | 8 | 15이하 합성수는 4,6,8,9,10,12,14,15 로 8개입니다. 따라서 8을 return합니다. |
📙풀이
function solution(n) {
var answer = 0;
for(let i = 1; i<=n;i++){
let cnt = 0;
for(let j = 1; j<=i;j++ ){
if(i % j === 0) cnt+=1
}
if(cnt >2){
answer+=1
}
}
return answer;
}
for문이 새로 반복될 때마다 cnt를 0으로 초기화해주기 위해 cnt를 0으로 선언하고,
i%j === 0은 나머지가 없이 나누어지는 i의 약수이기 때문에, cnt의 값을 증가시킵니다.
cnt가 3이상이라는 것은 약수의 개수가 세 개 이상인 수를 합성수를 의미하기 때문에
answer의 값을 증가시킵니다.
📙다른 사람의 풀이
function solution(n) {
let arr = new Set();
for(let i = 1; i <= n; i++){
for(let j = 2; j < i; j++){
if(i % j === 0)
arr.add(i);
}
}
return arr.size;
}
다른 사람의 풀이를 보다가 Set객체를 이용하여 해결하신 분이 있기에
보다 깔끔하고 명확한 듯하여 가져와봤습니다.
글 읽어 주셔서 감사합니다.
부족한 부분이 있다면 댓글로 알려주시면 감사히 배우겠습니다:)
728x90
'Javascript' 카테고리의 다른 글
[GSAP] Tween과 to(), from(), fromTo() (0) | 2023.07.18 |
---|---|
[GSAP] 애니메이션 라이브러리 GSAP 셋팅부터 시작해봅니다! (1) | 2023.07.13 |
[javascript] 중첩 반복문 - 중첩 for문, 중첩 while문 (feat. 구구단) (2) | 2023.06.19 |
[javascript] 프로그래머스 - 팩토리얼 (0) | 2023.06.17 |
[javascript] 프로그래머스 - 주사위의 개수 (1) | 2023.06.15 |