알고리즘/프로그래머스 - JS
[프로그래머스-JS] level.1 약수의 개수와 덧셈
개발자성장기
2022. 7. 14. 17:32
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/77884
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 코드
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이다.
반응형