프로그래머스, 자바스크립트) 약수의 개수와 덧셈

2024. 7. 2. 21:43·개발/알고리즘(코딩테스트)

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

약수를 구하는 함수를 만든 후 솔루션 함수 안에서 홀짝 판별해준다.

function countDivisors(n) {
  let count = 0;
  for (let i = 1; i <= Math.sqrt(n); i++) {
    if (n % i === 0) count += i * i === n ? 1 : 2;
  }
  return count;
}

function solution(left, right) {
  let sum = 0;
  for (let i = left; i <= right; i++) {
    countDivisors(i) % 2 === 0 ? (sum += i) : (sum -= i);
  }
  return sum;
}

 

다른 풀이

제곱근이 정수면 약수가 홀수다.

ex )

12 => 1,2,3,4,6,12 , 루트12는 3.4xx로 정수가 아니다. 약수의 개수또한 짝수

16 => 1,2,4,8,16, 루트 16은 4로 정수. 약수의 개수 홀수. 

루트 씌웠을때 정수가 나오는건 nxn = 어떤 수 되는 숫자가 있기에 약수의 개수 또한 홀수인 것이다.

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;
}
저작자표시 비영리 변경금지 (새창열림)

'개발 > 알고리즘(코딩테스트)' 카테고리의 다른 글

프로그래머스, 자바스크립트) 부족한 금액 계산하기  (0) 2024.07.10
프로그래머스, 자바스크립트) 문자열 내림차순으로 배치하기  (0) 2024.07.06
프로그래머스, 자바스크립트) 내적  (0) 2024.06.29
프로그래머스, 자바스크립트) 수박수박수박수박수박수?  (0) 2024.06.22
프로그래머스, 자바스크립트) 정수를 나선형으로 배치하기  (0) 2024.06.16
'개발/알고리즘(코딩테스트)' 카테고리의 다른 글
  • 프로그래머스, 자바스크립트) 부족한 금액 계산하기
  • 프로그래머스, 자바스크립트) 문자열 내림차순으로 배치하기
  • 프로그래머스, 자바스크립트) 내적
  • 프로그래머스, 자바스크립트) 수박수박수박수박수박수?
빔네모
빔네모
console.log("빔네모")
  • 빔네모
    bimnemo("개발")
    빔네모
  • 전체
    오늘
    어제
    • 기록 (146) N
      • 기술 (37)
        • JavaScript (1)
        • TypeScript (9)
        • React.js (10)
        • Next.js (0)
        • 라이브러리,도구 (4)
        • HTML,CSS (4)
        • CS (5)
        • BE (4)
      • 개발 (97) N
        • 프로젝트 (0)
        • 트러블슈팅 (5)
        • 알고리즘(코딩테스트) (92) N
      • 정보 (4)
      • 취미 (8)
        • 감상 (8)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
빔네모
프로그래머스, 자바스크립트) 약수의 개수와 덧셈
상단으로

티스토리툴바