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

2023. 2. 26. 13:45·알고리즘
반응형

문제 설명

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

제한사항

  • 1 ≤ left ≤ right ≤ 1,000

입출력 예

left right result
13 17 43
24 27 52

입출력 예 설명

입출력 예 #1

  • 다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다.
수 약수 약수의 개수
13 1, 13 2
14 1, 2, 7, 14 4
15 1, 3, 5, 15 4
16 1, 2, 4, 8, 16 5
17 1, 17 2
  • 따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다.

입출력 예 #2

  • 다음 표는 24부터 27까지의 수들의 약수를 모두 나타낸 것입니다.
수 약수 약수의 개수
24 1, 2, 3, 4, 6, 8, 12, 24 8
25 1, 5, 25 3
26 1, 2, 13, 26 4
27 1, 3, 9, 27 4
  • 따라서, 24 - 25 + 26 + 27 = 52를 return 해야 합니다.

나의 풀이

function solution(left, right) {
    var answer = 0;
    
    for(let i = left; i <= right; i++) {
        const num = Math.floor(Math.sqrt(i));
        let value = new Set(); 
        
        for(let j = 1; j <= num; j++) {
            if(i % j === 0) {
                value.add(j);
                value.add(i / j);
            }
        }
        
        if(value.size %2 === 0) {
            answer += i;
        } else {
            answer -= i;
        }
    }
    
    return answer;
}
반응형
저작자표시 비영리 변경금지 (새창열림)

'알고리즘' 카테고리의 다른 글

[알고리즘] K번째수  (0) 2023.02.28
[알고리즘] 두 개 뽑아서 더하기  (0) 2023.02.27
[알고리즘] 부족한 금액 계산하기  (1) 2023.02.25
[알고리즘] 키패드 누르기 - 다시 풀기  (0) 2023.02.24
[알고리즘] 실패율  (0) 2023.02.23
'알고리즘' 카테고리의 다른 글
  • [알고리즘] K번째수
  • [알고리즘] 두 개 뽑아서 더하기
  • [알고리즘] 부족한 금액 계산하기
  • [알고리즘] 키패드 누르기 - 다시 풀기
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    ChatGPT
    리얼학습일기
    webpack
    덤프
    CSS
    리액트
    영어회화
    Babel
    자바스크립트
    알고리즘
    다이소
    typescript
    영어독학
    바질
    프로그래머스
    리얼클래스
    타일러영어
    식물
    Node.js
    Docker
    네트워크
    redux
    react
    ReactNative
    바질 키우기
    next.js
    javascript
    CCNA
    타입스크립트
    네이버 부스트캠프
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[알고리즘] 약수의 개수와 덧셈
상단으로

티스토리툴바