본문 바로가기
코딩 테스트/프로그래머스

약수의 합

by ornni 2024. 4. 17.
728x90
반응형

첫번째 코드

 

약수를 구하는 방법에 대해서 이전에 GPT와 상담한 적이 있어서 그걸 이용해서 풀어보자! 라는 생각이었다.

n까지 숫자가 있으면 1~n까지 값을 n에 나누어보고 나누어지면 해당 값은 약수이므로 그 값을 더하자!

 

def solution(n):
    answer = 0
    for i in range(1, n+1):
        if n % i == 0:
            answer += i
    return answer

 

통과!


두번째 코드

 

사실 위 코드도 맞게 돌아가는데, 이전에 용량 문제로 돌아가지 않는 문제가 있었다.

그때 해결했던 방법을 이용해서 문제를 풀어보려고 한다!

1~n까지 값을 모두 나누어보는 것이 아니라 sqrt(n)까지만 나누어보고 약수는 하나가 존재하면 다른 하나가 존재한다고 생각하면 되므로 그 값을 구해 더하는 것이다.

 

import math

def solution(n):
    answer = 0
    for i in range(1, int(math.sqrt(n)+1)):
        if i**2 == n:
            answer += i
        elif n % i == 0:
            answer += i
            answer += n//i
    return answer

 

통과

이전에 사용해본 것들을 기억해서 사용한 나자신 칭잔해!


링크

https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12928.%E2%80%85%EC%95%BD%EC%88%98%EC%9D%98%E2%80%85%ED%95%A9

 

programmers/프로그래머스/1/12928. 약수의 합 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

모의고사  (4) 2024.04.19
내적  (0) 2024.04.18
시저 암호  (0) 2024.04.16
제일 작은 수 제거하기  (0) 2024.04.16
자릿수 더하기  (1) 2024.04.15