Link
초보 개발자의 성장 일기
약수의 개수와 덧셈 본문
문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
나의 문제 해결 방법
left부터 right까지 약수의 갯수를 구해서 짝수면 더하고 홀수면 뺀다.
function solution(left, right) {
let sum = 0;
let cnt = 0;
for(let i = left; i<=right; i++) {
for(let j = 1; j<=i; j++) {
if(i%j === 0) {
cnt++
}
} if(cnt%2===0) {
sum +=i
cnt = 0
} else {
sum -=i
cnt = 0
}
}
return sum
}
다른 해결 방법
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;
}
제곱근이 정수면 약수의 개수가 홀수임을 이용한다.
isInteger()
메서드는 주어진 값이 정수인지 불리언 값으로 판별한다.
'Development > Algorithm' 카테고리의 다른 글
문자열 내 마음대로 정렬하기, n번째 문자로 정렬 (0) | 2023.11.29 |
---|---|
문자열 다루기 기본 (0) | 2023.11.25 |
가까운 수, 배열에서 가장 가까운 수 찾기 (0) | 2023.11.22 |
연속된 수의 합 (2) | 2023.11.22 |
특이한 정렬, 매개변수와 가까운 순서대로 정렬 (0) | 2023.11.22 |