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

kimsujin·2022년 2월 10일
0

프로그래머스

목록 보기
1/2
post-thumbnail

Lv.1 약수의 개수와 덧셈


문제 설명

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

제한 사항

  • 1 ≤ leftright ≤ 1,000


Python 풀이

def solution(left, right):
    answer = 0
    while left!=right+1: //left에서 right까지 반복
        count = 0 //약수 개수 초기화
        for i in range(1, left+1): //약수 개수 구하기
            if left%i ==0: //i가 left로 나누어 떨어진다면
                count +=1 //약수의 개수 +1
        if count%2==0: //약수의 개수 홀짝 검사
            answer +=left //짝수라면 더하고
        else:
            answer -=left //홀수면 뺀다.
        left +=1
    return answer

실행 결과

  • 정확성 테스트
    테스트 1 〉 통과 (20.80ms, 10.2MB)
    테스트 2 〉 통과 (3.60ms, 10.2MB)
    테스트 3 〉 통과 (3.88ms, 10.2MB)
    테스트 4 〉 통과 (1.68ms, 10.3MB)
    테스트 5 〉 통과 (18.65ms, 10.2MB)
    테스트 6 〉 통과 (1.05ms, 10.2MB)
    테스트 7 〉 통과 (0.40ms, 10.3MB)


회고

1. 약수의 개수를 찾는 수학적 원리와 알고리즘을 까먹어서 처음에 많이 헤맸다!! 다시 공부해야겠다.
2. 적혀있는 그대로 풀었더니 너무 복잡한 것 같아서 더 간단하게 풀 수 있는 방법을 연구해야겠다.

0개의 댓글