Python/Coding Test

[Coding Test] 약수의 개수와 덧셈

gangee 2023. 5. 10. 16:24

목차

    728x90
    반응형

    프로그래머스 코딩테스트 1단계 : 약수의 개수와 덧셈

    문제 설명

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

    입출력 예

    문제 풀이

    • 반복문을 통해 i의 값을 left부터 right까지 반복
    • i의 약수의 개수가 홀수이면 제곱근을 가진다는 것을 이용해 조건문 생성
    • 약수의 개수가 홀수이면, answer에서 뺌
    • 약수의 개수가 짝수이면, answer에 더함

    정답 코드

    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

    처음 작성한 코드

    def solution(left, right):  
    
        answer = 0  
    
        for i in range(left, right+1):  
            if len(i%1==0)%2 == 0:  
                answer += i  
            else:  
                answer -= i  
    
        return answer
    • 조건문으로 값을 1로 나누었을 때 나머지가 0인 값(약수)의 개수를 2로 나누었을 때 나머지가 0인 값(짝수)을 구함
    • 조건에 맞는 값을 answer에 더함
    • 조건에 맞지 않는 값(약수의 개수가 홀수 일 때)을 answer에서 뺌
    • if문에서 Type오류 발생
    728x90
    반응형