본문 바로가기
코딩테스트 문제풀이(Python)

백준 1676번 문제풀이 (파이썬)

by chanfficial 2022. 5. 29.

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값을 출력했다.