문제 링크
https://www.acmicpc.net/problem/1676
풀이
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이 몇 개인지 세서 출력하였다.
'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 2847] 게임을 만든 동준이 with Node.js (0) | 2021.05.22 |
---|---|
[백준 1015] 수열 정렬 with Node.js (0) | 2021.05.17 |
[백준 1543] 문서 검색 with Node.js (0) | 2021.05.16 |
[백준 1654] 랜선 자르기 with Python (0) | 2021.05.15 |
[백준 1302] 베스트셀러 with Node.js (0) | 2021.05.15 |