[Python] 프로그래머스 - Level1 - 약수의 개수와 덧셈

강주형·2022년 8월 10일
0

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

월간 코드 챌린지 시즌2

from collections import defaultdict

def solution(left, right):
    answer = 0
    count = defaultdict(int)
    for i in range(left, right+1):
        for j in range(1, i+1):
            if i % j == 0:
                count[i] += 1
    for key, value in count.items():
        if value % 2 == 0:
            answer += key
        else:
            answer -= key
    return answer

defaultdict를 이용해서 풀었음
key에 숫자를 넣고, value에 그 숫자에 해당하는 약수의 갯수를 넣음


타인 코드
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

제곱수(4, 9, 16, 25, ...)는 약수의 갯수가 홀수라는 성질을 이용해서 풀은 듯 (처음 알음)

profile
Statistics & Data Science

0개의 댓글