[프로그래머스 연습문제] 약수의 개수와 덧셈

2022. 1. 20. 08:58·레거시모음/알고리즘 문제풀이

월간 코드 챌린지 시즌2

문제풀러 바로가기👇👇👇👇👇👇

약수의 개수와 덧셈

 

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

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

programmers.co.kr

 

 

 

내 풀이

def solution(left, right):
    answer = 0
    for i in range(left, right+1):
        cnt = 1
        for j in range(1, i//2+1):
            if i % j == 0:
                cnt += 1

        answer += i if cnt % 2 == 0 else -i
    return answer

사실 문제 자체가 쉬워서 문제풀이가 어렵지는 않았다.

심지어 이 문제를 풀면서 약수 개수를 찾는 복잡도를 절반으로 줄였다고 좋아했었다.

(cnt에 미리 1을 넣어놓으면 본인수를 넣는 의미이기 때문에 절반까지만 반복문을 돌릴 수 있다.)

 

하지만 이번에 문제를 풀고 내가 몰랐던 수학적인 사실을 알게 되어서 블로그에 따로 기록하게되었다.

 

 

다른 사람 풀이

def solution(left, right):
    answer = 0
    for i in range(left,right+1):
        if int(i**0.5)==i**0.5:
            answer -= i
        else:
            answer += i
    return answer
약수가 홀수개인 모든 수는 제곱수

이 문제에서 명제 하나를 배워간다.

 

'레거시모음/알고리즘 문제풀이' 카테고리의 다른 글
  • [백준][파이썬] 점프왕 쩰리(small)
  • [백준][파이썬] DFS와 BFS
  • [프로그래머스 연습문제][Python] Lv.1 신고 결과 받기
  • [프로그래머스 연습문제][Python] Lv.1 크레인 인형뽑기 게임
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (214)
      • 끄적끄적 (6)
      • Spring (21)
      • Java (3)
      • NestJS (1)
      • Redis (3)
      • RabbitMQ (0)
      • Test (3)
      • 대외활동 (36)
        • 부스트캠프 (23)
        • IT커뮤니티 (5)
        • 글또 (5)
        • 컨퍼런스 (3)
      • Infra (5)
        • Docker (1)
        • Jenkins (1)
        • AWS (1)
      • CS (26)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
      • MySQL (7)
      • Git & GitHub (16)
        • Git (12)
        • Github Actions (1)
        • 기타(마크다운 등) (3)
      • 프로젝트 (2)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • Python (12)
      • 레거시모음 (64)
        • 스프링 (11)
        • 자바 클래스&메소드 (1)
        • 오류해결 (18)
        • JSP & Servlet (12)
        • 자바스크립트 기초 (3)
        • React (2)
        • 이클립스 (1)
        • 알고리즘 문제풀이 (16)
      • 디자인패턴 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    웹개발
    오류해결
    자바
    스프링
    부스트캠프 7기
    스프링부트
    자바스크립트
    부스트캠프
    운영체제
    파이썬
    GitHub
    알고리즘
    부스트캠프 멤버십
    Git
    Spring
    jsp
    Python
    MySQL
    os
    java
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
[프로그래머스 연습문제] 약수의 개수와 덧셈
상단으로

티스토리툴바