본문 바로가기
코딩 공부

Leetcode 258. Add Digits - Python

by 카우보이연구소 2022. 2. 13.

요즘에는 개발자들이 회사에 취업하기 위해서 사용한다는 리트코드 (leetcode) 사이트의 문제들을 풀어보고 있습니다. 이제 막 시작한 초보자라 힘든 점이 많아서 이렇게 글로 남겨서 복습하려고 합니다.

 

문제: Add Digits
등급: Easy

 

내가 적고 엄청 느린 코드

<코드>

class Solution(object):
    def addDigits(self, num):
        if num < 10:
            return num
        
        while num >= 10:
            prev = 0
            while num > 0 :
                prev += num % 10
                num = num // 10
            num = prev
        
        return num

<논리>

우선, 숫자가 10보다 작으면 바로 그대로 반환하도록 했다.

 

그 후, 만약 숫자가 10보다 클 경우, 숫자를 10으로 나눠서 남는 값, 즉 마지막 digit의 수를 계속 더했다. (while loop을 활용하여)

 

그리고 num을 반환.

 

하지만, 고작 6.6%보다 빠른 코드라니... 그래도 통과한 것이 어딘가! (그것도 한번에)

 

Happy coding!

 

댓글