Skip to content

Latest commit

 

History

History

Factorial_Trailing_Zeroes

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

2020-12-09

주어진 수 n의 factorial을 구했을 때, 팩토리얼 수의 마지막 0 이상의 수 이후로 0이 몇개 있는지를 return 하는 문제입니다.

solve 1.

해당 풀이에선 간편하게 math.factorial()를 사용했지만 아래와 같이 recursive를 이용해 팩토리얼을 구할 수도 있습니다.

def factorial_recursive(self, n):
    return n * self.factorial(n - 1) if n > 1 else 1

먼저 팩토리얼 값을 구한다음 문자열로 변환합니다. 그 후 뒤에서 부터 차례로 하나씩 값을 검사하며 만약 element가 0이라면 ans에 1을 더해주고, 만약 0이 아니라면 ans를 return 합니다.

class Solution:
    def trailingZeroes(self, n: int) -> int:
        factorial = str(math.factorial(n))

        ans = 0
        for i in range(len(factorial) - 1, -1, -1):
            if factorial[i] == '0':
                ans += 1
            else:
                return ans
        return ans