반응형
-풀이
N = int(input())
factorial = 1
count = 0
for i in range(1,N+1):
factorial *= i
factorial = str(factorial)
for j in range(len(factorial)-1, -1, -1):
if factorial[j] == '0':
count += 1
try:
if factorial[j-1] == '0':
continue
else:
break
except:
break
else:
break
print(count)
-풀이 설명(느낀점)
[20분 sol] 반복문 i로 팩토리얼 값을 구하고 반복문 j에 뒤 인덱스부터 차례대로 '0'일 경우 count변수에 1을 더해주어 값을 구했다.
다른 사람의 풀이를 보니 훨씬 쉬운 방법이 있었다.
from math import factorial
n = int(input())
cnt = 0
for i in str(factorial(n))[::-1] :
if i != '0' :
break
cnt += 1
print(cnt)
팩토리얼은 math모듈의 factorial함수로 구하고 [::-1]로 뒤에서부터 차례대로 가져와 0과 비교하여 답을 도출해낼 수 있었다.
'알고리즘' 카테고리의 다른 글
[수학] 백준 6588파이썬 (골드바흐의 추측) 실버1 (0) | 2021.11.10 |
---|---|
[수학] 백준 2004 파이썬 (조합 0의 개수) 실버2 (0) | 2021.11.10 |
[수학] 백준 11653 파이썬 (소인수분해) 실버4 (0) | 2021.11.09 |
[수학] 백준 1929파이썬 (소수구하기) 실버2 (0) | 2021.11.09 |
[수학] 백준 1978 파이썬 (소수 찾기) 실버4 (0) | 2021.11.09 |