저장을 습관화
프로그래머스 LV.1 약수의 개수와 덧셈 본문
프로그래머스 LV.1 약수의 개수와 덧셈
https://school.programmers.co.kr/learn/courses/30/lessons/77884
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
약수의 개수와 덧셈
2. 문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
3. 제한 사항
- 1 ≤ left ≤ right ≤ 1,000
4. 예시
left | right | result |
13 | 17 | 43 |
24 | 27 | 52 |
5. 기본 제공 코드
function solution(left, right) {
var answer = 0;
return answer;
}
6. 제출한 내 답
const solution = (left, right) => {
const measure = (n) => {
let count = 0;
for (j = 1; j <= n; j++) if (n % j === 0) count += 1;
return count;
};
let answer = 0;
for (i = left; i <= right; i++) {
measure(i) % 2 === 0 ? (answer += i) : (answer -= i);
}
return answer;
};
6-2. VSC에 작성한 내용
const solution = (left, right) => {
const measure = (n) => {
let count = 0;
for (j = 1; j <= n; j++) if (n % j === 0) count += 1;
return count;
};
let answer = 0;
for (i = left; i <= right; i++) {
measure(i) % 2 === 0 ? (answer += i) : (answer -= i);
}
return answer;
};
// 테스트
console.log(solution(13, 17));
console.log(solution(24, 27));
7. 특이사항
없음
8. 다른 사람이 작성한 답
8-1. 가장 많이 쓰인 풀이법
function solution(left, right) {
var answer = 0;
for (let i = left; i <= right; i++) {
if (Number.isInteger(Math.sqrt(i))) {
answer -= i;
} else {
answer += i;
}
}
return answer;
}
'제곱근이 정수이면 약수의 개수가 홀수이다.'
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.0 qr code (0) | 2023.09.28 |
---|---|
프로그래머스 LV.1 문자열 내림차순으로 배치하기 (0) | 2023.09.28 |
프로그래머스 LV.0 7의 개수 (0) | 2023.09.28 |
프로그래머스 LV.0 문자열 묶기 (0) | 2023.09.28 |
프로그래머스 LV.0 이진수 더하기 (0) | 2023.09.27 |