파이썬 코드카타 13번~15번: 자릿수 더하기, 알고리즘적 풀이

2024. 2. 15. 00:57전처리/PYTHON

 

문제 13. 자릿수 더하기


작성 코드

def solution(n):
    answer = 0
    n = str(n)
    for i in n:
        answer += int(i)
    return answer

 

해설 코드(1)

 

 

해설코드(2)

 

 

시간 측정 라이브러리를 사용하여 효율 비교

 

 

문제 14. 약수의 합


작성 코드

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

 

후기: n을 1로 나눈 나머지가 0이잖아. 어렵게 썼네. 내가 쓴 건, 1부터 변수에 넣고 1~12중에 곱하면 12가 되는 걸 찾았다.

 

 

문제 15. 나머지가 1이 되는 수 찾기


작성 코드

def solution(n):
    answer = []
    for i in range(1, n+1):
        if n % i == 1:
            answer.append(i)
    return min(answer)

 

2. 알고리즘으로 풀기 (중간에 비교를 계속 해줌)

 

 

min은 괄호 안의 모든 수를 비교한다.

 

 

3. return 하면 함수가 바로 끝나버려서 반복이 안된다. break 거는거랑 비슷하다. 효율적인 코드.