Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- margin-left
- 국비지원
- 코딩테스트 js
- 코딩테스트 lv0
- 프로그래머스 JS
- 변수 선언
- React
- 나라사랑카드
- 내일배움카드
- 자바스크립트
- K디지털기초역량훈련
- flex
- CSS
- javascript
- 패스트캠퍼스
- react강의
- flex item
- html
- 리액트
- 호이스팅
- js split
- 프로그래머스 lv0
- 노드
- API
- DOM
- Flex Container
- js
- SVG
- udemy
- 바이트디그리
Archives
- Today
- Total
꺾이지 않는 마음
[프로그래머스] Lv.0 합성수 찾기 JS 풀이 본문
🧡문제 설명
약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 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 변수를 만들어서 스위치 역할을 부여하였다.
'코딩테스트 기록' 카테고리의 다른 글
[프로그래머스] Lv.0 팩토리얼 JS 풀이 (0) | 2022.10.29 |
---|---|
[프로그래머스] Lv.0 2차원으로 만들기 JS 풀이 (0) | 2022.10.29 |
[프로그래머스] Lv.0 가위 바위 보 JS 풀이 (1) | 2022.10.27 |
[프로그래머스] Lv.0 대문자와 소문자 JS 풀이 (0) | 2022.10.27 |
[프로그래머스] Lv.0 모음 제거 JS 풀이 (0) | 2022.10.27 |
Comments