문제
https://school.programmers.co.kr/learn/courses/30/lessons/77884
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
약수를 구하는 함수를 만든 후 솔루션 함수 안에서 홀짝 판별해준다.
function countDivisors(n) {
let count = 0;
for (let i = 1; i <= Math.sqrt(n); i++) {
if (n % i === 0) count += i * i === n ? 1 : 2;
}
return count;
}
function solution(left, right) {
let sum = 0;
for (let i = left; i <= right; i++) {
countDivisors(i) % 2 === 0 ? (sum += i) : (sum -= i);
}
return sum;
}
다른 풀이
제곱근이 정수면 약수가 홀수다.
ex )
12 => 1,2,3,4,6,12 , 루트12는 3.4xx로 정수가 아니다. 약수의 개수또한 짝수
16 => 1,2,4,8,16, 루트 16은 4로 정수. 약수의 개수 홀수.
루트 씌웠을때 정수가 나오는건 nxn = 어떤 수 되는 숫자가 있기에 약수의 개수 또한 홀수인 것이다.
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;
}
'개발 > 알고리즘(코딩테스트)' 카테고리의 다른 글
프로그래머스, 자바스크립트) 부족한 금액 계산하기 (0) | 2024.07.10 |
---|---|
프로그래머스, 자바스크립트) 문자열 내림차순으로 배치하기 (0) | 2024.07.06 |
프로그래머스, 자바스크립트) 내적 (0) | 2024.06.29 |
프로그래머스, 자바스크립트) 수박수박수박수박수박수? (0) | 2024.06.22 |
프로그래머스, 자바스크립트) 정수를 나선형으로 배치하기 (0) | 2024.06.16 |