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

2022. 1. 20. 08:58·Python/알고리즘 문제풀이

월간 코드 챌린지 시즌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
약수가 홀수개인 모든 수는 제곱수

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

 

'Python/알고리즘 문제풀이' 카테고리의 다른 글
  • [백준][파이썬] 점프왕 쩰리(small)
  • [백준][파이썬] DFS와 BFS
  • [프로그래머스 연습문제][Python] Lv.1 신고 결과 받기
  • [프로그래머스 연습문제][Python] Lv.1 크레인 인형뽑기 게임
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

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

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

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

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

티스토리툴바