코딩테스트 문제풀이(Python)
백준 1676번 문제풀이 (파이썬)
chanfficial
2022. 5. 29. 17:52
1676. 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력 : 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력 : 첫째 줄에 구한 0의 개수를 출력한다.
ex)
입력 :
10
출력 :
2
풀이
n = int(input())
fact = 1
count = 0
for i in range(1, n+1, 1):
fact *= i
fact = str(fact)
for i in fact[::-1]:
if i != '0':
break
count += 1
print(count)
- 먼저 숫자 n을 입력받아 1부터 n+1까지 1씩 증가하는 반복문을 사용하여 팩토리얼 값(n*(n-1)*...*1) fact를 구하고, 이를 문자열로 만들었다.
그런 다음 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구해야 하므로
슬라이스 [::-1] 을 사용하여 문자열 fact를 뒤집은 반복문에서 i 가 '0'이 아닐 때 까지 count를 1씩 증가하게 하여 count값을 출력했다.