728x90
문제
N!에서 뒤에서부터 봤을 때 0이 아닌 수가 나올 때까지 0의 개수를 구하라.
입력
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력
첫째 줄에 구한 0의 개수를 출력한다.
접근
팩토리얼을 구하고 리스트로 변경한 후에 뒤에서부터 0의 개수를 카운트한다.
구현
먼저 반복문을 통해 팩토리얼을 구하여 total에 저장한다.
이후 total을 리스트로 변환하여 각 인덱스에 숫자가 차례대로 위치하도록 한다.
이후 reversed()를 통해 리스트를 뒤집은 후 원소를 꺼내어 0이 나올 때까지 카운트한다.
N = int(input())
total = 1
for n in range(1, N+1):
total *= n
total = list(map(int, str(total)))
answer = 0
for i in reversed(total):
if i == 0:
answer += 1
else:
break
print(answer)
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준 11727] 2 x n 타일링 2 (0) | 2021.03.07 |
---|---|
[백준 1697] 숨바꼭질 (0) | 2021.03.05 |
[백준 2630] 색종이 만들기 (0) | 2021.03.04 |
[백준 4948] 베르트랑 공준 (0) | 2021.03.04 |
[백준 1929] 소수 구하기 (0) | 2021.03.04 |