just inside

[백준] Silver 5. 1676 - 팩토리얼 0의 개수 python 본문

coding test/구현

[백준] Silver 5. 1676 - 팩토리얼 0의 개수 python

방울도마도 2024. 7. 12. 09:48
728x90

문제 링크

https://www.acmicpc.net/problem/1676


문제 설명

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

 

입력

첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)

 

출력

첫째 줄에 구한 0의 개수를 출력한다.


제출 코드

import sys

input = sys.stdin.readline

n = int(input().rstrip())
n_fac = 1
for i in range(1, n+1):
    n_fac *= i

num_0 = 0
for i in str(n_fac)[::-1]:
    if i == '0':
        num_0 += 1
    else:
        print(num_0)
        break

 

풀이

  • N! 수를 먼저 구한다.
  • 계산한 팩토리얼 수를 문자열로 바꾸고, 뒤에서부터 접근해서 0이면 0의 개수 변수인 num_0에 1을 더해주고, 아니면 break 하고 0의 개수를 출력한다.

 

알아둘 사항

  • N!은 아래의 함수를 사용해서 쉽게 계산할 수 있다.
import math

n_fac = math.factorial(n)
728x90