일기 대신 코드 슬쩍

[프로그래머스]Lv1. 약수의 개수와 덧셈 본문

코딩테스트/프로그래머스(Python)

[프로그래머스]Lv1. 약수의 개수와 덧셈

코코자 2023. 1. 26. 22:09

문제 설명

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

제한사항

  • 1 ≤ left ≤ right ≤ 1,000

입출력 예

left right result
13 17 43
24 27 52

풀이

def solution(left, right):
    sum = 0
    for i in range(left,right+1):
        count = 0
        for j in range(1,i+1):
            if i % j == 0:
                count += 1
        if count % 2 == 0:
            sum += i
        else:
            sum -= i        
    return sum
  • 이중 for문 활용하여, 안쪽 for문에서 약수의 개수를 셈
  • 바깥쪽 for문에서는 약수의 개수가 홀수냐 짝수냐에 따라서 더하고 빼는 것을 계산
  • 다소 난잡함..ㅜㅜㅡㅜ