level0_자릿수 더하기

2024. 10. 29. 20:57파이썬_알고리즘(코딩테스트)/level0

 

내가 제출한 코드

def solution(n):
    answer = 0
    for i in str(n):
        answer += int(i)
    return answer
  • 정수 n을 문자열로 변환 시킨후, 문자열의 각 문자를 하나씩 반복한다.
  •  문자열에서 가져온 각 자리수를 정수로 변환한 후 answer에 더하고, 최종적으로 모든 자리수를 더한 answer을 반환한다.

 

다른 사람이 제출한 코드

def solution(n):
    answer = 0
    while n:
        n, r = divmod(n, 10)
        answer += r
    return answer
  • while n
    • n이 0이 아닐때까지 계속 반복한다.
  • divmod(n, 10)
    • n을 10으로 나눈 몫과 나머지를 동시에 반환한다.
    • n을 10으로 나누면 몫에는 n의 마지막 자리수를 제외한 값이 남고, 나머지에는 마지막 자리수가 저장된다.
    • 예를 들어서 예시에서 나온 n값 10을 대입해서 본다면, n(몫)은 1이되고, r(나머지)는 0이 된다.
  • 반복할 때마다 n의 마지막 자리수가 answer에 더해진다.