프로그래머스 1단계 : 약수의 개수와 덧셈
두 정수 left와 right가 매개변수로 주어집니다.
left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고,
약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
제한 사항
1 ≤ left ≤ right ≤ 1,000
나의 문제 풀이
for문 속에 또 for문을 이용하여 i 와 j 값을 서로 대입해준뒤에 if문을 사용하여 각 for문에 나온 count 값을
2를 나누고 1이 되는 값은 빼주고 홀수이니깐, 나머지는 짝수이니 더한다라고 했습니다.(잘 모릅니다..)
function solution(le, ri) {
var answer = 0;
var count = 0;
for(var i=le;i<=ri;i++){
count = 0;
for(var j=1;j<=i;j++){
if(i%j == 0){
count++;
}
}
if(count%2 == 1){
answer -=i;
}else{
answer +=i;
}
}
return answer;
}
다른 사람 문제 풀이
이 분은 Number에 정수인지 판별하고 또 한 제곱근 수학 메서드를 이용하여 푼 것 같습니다.
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;
}
'PRO' 카테고리의 다른 글
프로그래머스 1단계 : 행렬의 덧셈 (0) | 2022.11.24 |
---|---|
프로그래머스 1단계 : 부족한 금액 계산하기 (0) | 2022.11.23 |
프로그래머스 1단계 : 문자열 다루기 기본 (0) | 2022.11.23 |
프로그래머스 1단계 : 문자열 내림차순으로 배치하기 (0) | 2022.11.21 |
프로그래머스 1단계 : 내적 (0) | 2022.11.21 |
댓글