반응형
문제설명
https://www.acmicpc.net/problem/1676
사고과정
- 문제를 보면 "N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수"라고 되어 있는데, 처음에 이 말이 무슨말인지 이해를 잘 못했다. 질문에서 찾아보니 똑같은 질문을 한 게 있었고 보니까 이해할 수 있었다.(좀 더 부연설명이 되어 있으면 좋았을 듯 하다) 예를 들어, 10! = 3628800 이다. 이 때 362800에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수니까 2개가 된다.
- for loop를 이용해서 인덱스를 감소시키는 방식으로 오른쪽에서 왼쪽으로 이동시켰다.
풀이
import math
n = int(input())
f = str(math.factorial(n))
count = 0
for i in range(len(f)-1, -1, -1):
if f[i] == '0':
count += 1
else:
break
print(count)
반응형
'알고리즘 삽질장' 카테고리의 다른 글
[BOJ] 9613번 - GCD 합 (0) | 2021.10.27 |
---|---|
[BOJ] 2004번 - 조합 0의 개수 (0) | 2021.10.27 |
[BOJ] 6588번 - 골드바흐의 추측 (0) | 2021.10.26 |
[BOJ] 1978번 - 소수 찾기 (0) | 2021.10.26 |
[BOJ] 11656번 - 접미사 배열 (0) | 2021.10.26 |