본문 바로가기
알고리즘 스터디/프로그래머스 스킬체크 레벨 1(끝)

[프로그래머스 스킬체크 레벨 1] 약수의 개수와 덧셈 풀이 및 설명 - 자바스크립트[JavaScript]

by 레일라오리덕 2021. 7. 20.
728x90

https://programmers.co.kr/learn/courses/30/lessons/77884

 

코딩테스트 연습 - 약수의 개수와 덧셈

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주

programmers.co.kr

 

문제

 

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

 

 

제한 사항

  • 1 ≤ left  right ≤ 1,000

결괏값 예시

 

left right result
13 17 43
24 27 52

 

기본 제공 틀

 

function solution(left, right) {
    var answer = 0;
    return answer;
}

 

풀이 [JavaScript]

 

728x90

입력된 값 left를 초기값으로 넣어주고, right값까지 for문을 돌면서 left값의 인덱스를 돌며 1에서부터 left(j)값까지의 값으로 left(i)값을 나누어 나머지가 0인 값이 나오면 약수가 되므로, count를 +1해줍니다.

그 후, 해당 left(i)값의 count값이 짝수라면 answer값에 더해주고, 홀수라면 answer값에서 해당 값을 빼준 후, 다음 left(i)값으로 넘어가기전에 count값을 다시 0으로 초기화해 주었습니다.

function solution(left, right) {
    var count = 0;
    var answer = 0;
    for(var i=left; i<=right; i++){
         for(var j=1; j<=i; j++){
             if(i%j === 0 ){
                 count += 1;
             }
        }
        if(count % 2 === 0){
            answer += i;
        }else{
            answer -= i;
        }
        count =0;
    }
    return answer;
}

 

채점 결과 [JavaScript]

 

 

728x90

댓글