[TIL] 카테고리/알고리즘 문제풀기

[자바스크립트] 프로그래머스 Lv.1 약수의 개수와 덧셈

티레이니 2022. 5. 21. 01:03

 

 

 

... 노가다로 풀었다. 약간 민망하다. for과 if의 노예 재등장

 

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

  for (i=left; i<=right; i++) { //왼쪽부터 오른쪽까지 수를 하나씩
    for(j=1; j<=i; j++) { //소수를 찾기위해 반복문을 돌린다
      if(i%j === 0) { counter++ } //숫자가 i로 나누어 떨어진다면 카운터 ++
    }
    if (counter%2 === 0) { // 소수가 짝수라면
      divisors += i  // i를 결과값에 더하고
      counter = 0 // 카운터 초기화
    } else {
      divisors -= i // 이외에는 결과값에서 빼고
      counter = 0 // 카운터 초기화
    }
  }

  return divisors;
}

 

... 지저분하다. 뿌엥.

 

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;
}

 

다른 사람의 풀이.

제곱근이 정수면, 약수의 갯수가 홀수라고 한다..

 

수학 못하는거 초콤 서럽다..