[알고리즘] 약수의 개수와 덧셈

Cottonmycotton·2021년 10월 9일
0

Algorithm

목록 보기
23/44
post-custom-banner

문제 설명

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

제한사항

  • 1 ≤ left ≤ right ≤ 1,000

입출력 예시

입출력 예시 설명

🖊 풀이

  • for문을 사용하여 left와 rigtht 사이의 숫자를 변수 i에 담아준다.
  • 1부터 i의 수 중 i를 나누어 떨어지게 하는 정수, 즉 i의 약수를 구하여( j ) 빈 배열에 담아준다.
  • 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 빼야하므로 배열의 길이가 2로 나누어 떨어질땐 i를 더하고 그렇지 않을 경우 i를 빼준 뒤 최종 값을 리턴한다.

💡 코드

function solution(left, right) {
  let count = 0;

  for (let i = left; i <= right; i++) {
    const arr = [];
    for (let j = 1; j <= i; j++) {
      if (i % j === 0) {
        arr.push(j);
      }
    }
    if (arr.length % 2 === 0) {
      count += i;
    } else {
      count -= i;
    }
  }

  return count;
}

문제 출처: 프로그래머스

profile
투명인간
post-custom-banner

0개의 댓글