관리 메뉴

솜씨좋은장씨

[Programmers] 약수의 개수와 덧셈 (Python) 본문

Programming/코딩 1일 1문제

[Programmers] 약수의 개수와 덧셈 (Python)

솜씨좋은장씨 2021. 5. 28. 21:17
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 프로그래머스 약수의 개수와 덧셈 입니다.

 

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

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

programmers.co.kr

Solution

def solution(left, right):
    answer = 0
    
    for num in range(left, right + 1):
        operator = 1
        divisor_num = len([n for n in range(1, num+1) if num % n == 0])
        
        if divisor_num % 2 == 1:
            operator = -1
        
        answer += num * operator
    
    return answer

Solution 풀이

먼저 입력 받은 left 부터 right 까지의 수를 반복문으로 가져오고

각 수의 약수들을 list comprehension을 활용하여 구한 다음 약수를 구합니다.

구한 약수의 개수가 홀수일 경우 현재 숫자 * -1 한 값을 정답에 더해주고

그렇지 않을 경우 그냥 더해줍니다.

 

SOMJANG/CODINGTEST_PRACTICE

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments