Algorithm/Online judge

[백준] 1676번 > 팩토리얼 0의 개수

민철킹 2021. 2. 13. 22:29

www.acmicpc.net/problem/1676

 

1676번: 팩토리얼 0의 개수

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

www.acmicpc.net

문제

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

입력

첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)

출력

첫째 줄에 구한 0의 개수를 출력한다.

예제 입력 1

10

예제 출력 1

2

예제 입력 2

3

예제 출력 2

0

 


풀이

외장함수를 통해 factorial을 구하고, 문자열로 바꾸어 리스트에 담은 후, 뒤집어 0이 아닌지를 판별한다.

왜 실버문제인지 모르겠다.. 

아마 파이썬말고 다른 언어로 이렇게 풀었으면 실패했을 것 같다.

 

from math import factorial
n = int(input())
fac = list(str(factorial(n)))
fac.reverse()
count = 0
for i in fac:
    if i == '0':
        count += 1
    else:
        break
print(count)
반응형