https://school.programmers.co.kr/learn/courses/30/lessons/77884
나의 코드
function solution(left, right) {
let count = 0
box=[]
for( i=left; i <=right ; i++){
for(k=1; k<=i; k++){
if(i % k == 0){
count += 1;
}
}
box.push([i,count])
count = 0
}
const result = box.reduce((acc, cur)=> {
if(cur[1] % 2 === 0 ){
acc = acc + cur[0]
}else{
acc = acc - cur[0]
}
return acc
},0)
return result;
}
배열안에 left 부터 right 까지 숫자의 약수의 갯수를 넣어주고
기 배열을 reduce를 통해서 짝수인지 홀수인지 구분한다음 더하거나 빼는 값을 return하도록 함
다른 사람 풀이
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;
}
와 놀랐다 굉장히 쉽게 푸셨다.
제곱근이 정수이면 약수의 갯수가 홀수이다
Number.isInteger()
이 메서드는 값이 정수인지 판별하는 메서드이다.
반환값은 Boolean이다.
'알고리즘 > 프로그래머스 - JS' 카테고리의 다른 글
[프로그래머스-JS] level.1 예산 (0) | 2022.07.15 |
---|---|
[프로그래머스-JS] level.1 3진법 뒤집기 (0) | 2022.07.15 |
[프로그래머스-JS] level.1 실패율 (0) | 2022.07.14 |
[프로그래머스-JS] level.1 폰켓몬 (0) | 2022.07.04 |
[프로그래머스-JS] level.1 k번째수 <정렬> (0) | 2022.06.30 |