1676. 팩토리얼 0의 개수
https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
내 풀이 - 성공
from sys import stdin
N = int(stdin.readline())
ans = 0
five = 5
while five <= N:
for n in range(five, N+1, five):
ans += 1
five *= 5
print(ans)
전에 leetcode 에서 비슷한 문제 풀었던 게 생각났다
0 의 개수는 곧 2*5 = 10 의 개수와 관련이 있다
=> 2 는 5 보다 무조건 많은 개수를 가지니까 생각하지 않고 오직 5 의 개수만 세주기
이 때, 25, 50, 75, ... 와 같이 5 가 여러개 있는 숫자 처리 주의
=> 25 = 5 * 5, 50 = 5 * 5 * 2, ...
따라서 5 의 제곱수들의 배수까지 모두 세줌
처음엔 5 부터 시작해서 5 의 배수 모두 세주고
그 다음엔 25 (5 의 제곱) 부터 시작해서 25 의 배수 모두 세주고, 125 ...
'알고리즘 > 백준' 카테고리의 다른 글
[백준 - SILVER 1] 1697. 숨바꼭질 - Python3 (0) | 2021.10.27 |
---|---|
[백준 - SILVER 4] 2108. 통계학 - Python3 (0) | 2021.10.27 |
[백준 - SILVER 3] 1966. 프린터 큐 - Python3 (0) | 2021.10.09 |
[백준 - SILVER 4] 1620. 나는야 포켓몬 마스터 이다솜 - Python3 (0) | 2021.10.07 |
[백준 - SILVER 2] 1929. 소수 구하기 - Python3 (0) | 2021.10.07 |
댓글