코딩테스트
[프로그래머스] level1. 약수의 개수와 덧셈(javascript)
째마리
2021. 6. 23. 00:54
반응형
문제
코딩테스트 연습 - 약수의 개수와 덧셈
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주
programmers.co.kr
나의 풀이
function solution(left, right) {
var answer = 0;
let diff = right - left;
function judge(num){
let cnt = 0;
for(let i = 0 ; i<= num ;i++){
if (num % i == 0) cnt++
}
return cnt%2 == 0 ? true : false
}
for(let i = 0 ; i <= diff;i++){
let result = judge(left)
if(result){
answer += left
}else{
answer -= left
}
left++
}
return answer;
}
약수의 갯수가 짝수면 true, 홀수면 false를 반환하는 judge 함수를 만들었고, left와 right의 차이만큼 for문을 돌리면서
answer에 덧셈과 뺄셈을 해주었다.
다른이의 풀이
- 함수를 만들지 않고 for문을 두번 돌려서 한번에 계산할 수 있다.
- 제곱근이 정수면 약수의 갯수가 홀수랍니다. //Number.isInteger() 메서드는 주어진 값이 정수인지 판별합니다.
반응형