연습장/백준(BOJ) 문제풀이

[백준 1676] 팩토리얼 0의 개수 with Python

Tesseractjh 2021. 5. 17. 13:14

문제 링크

https://www.acmicpc.net/problem/1676

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

풀이

N = int(input())
dp = [0]*(N+1)
dp[0] = 1
for i in range(1, N+1):
    dp[i] = dp[i-1]*i
num = str(dp[N])[::-1]
for i in range(len(num)):
    if num[i] != "0":
        print(i)
        break

dp에 이전 팩토리얼을 저장하여 다음 팩토리얼을 빠르게 구하도록 하고, dp[N]의 뒤에서부터 0이 몇 개인지 세서 출력하였다.