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

김멉덥·2023년 7월 10일
0

알고리즘 공부

목록 보기
31/171
post-thumbnail

문제

프로그래머스 월간 코드 챌린지 시즌 2


코드 구현

def solution(left, right):
    answer = 0

    ## 약수를 다 찾고 -> 약수의 개수를 알아내고 -> 홀수인지 짝수인지 구별 -> 더할지 뺄지 계산
    start = left
    for i in range(0, right - left + 1):

        # 약수들 다 찾아내기
        yak_su = []
        for j in range(1, start + 1):
            if (start % j == 0):
                yak_su.append(j)

        # 약수의 개수가 홀수인지 짝수인지
        if (len(yak_su) % 2 == 0):
            answer += start
        elif (len(yak_su) % 2 != 0):
            answer -= start

        # 다음 수도 검사하기
        start += 1

    return answer

풀이

  • 약수를 다 찾고 → 약수의 개수를 알아내고 → 홀수인지 짝수인지 구별 → 더할지 뺄지 계산
  • 약수 찾아내는 방법
    • 1부터 자기자신까지 나누기 → 나누어 떨어지면 약수
    • 약수라면 yak_su 배열에 넣기
  • yak_su 배열의 길이를 2로 나눠서 → 나누어 떨어지면 약수가 짝수개 → 더해준다 yak_su 배열의 길이를 2로 나눠서 → 나누어 떨어지지 않으면 약수가 홀수개 → 빼준다

profile
데굴데굴 뚝딱뚝딱 개발기록

0개의 댓글