CS/algorithm
[백준 1676번] 팩토리얼 0의 개수 파이썬(python)
주식하는 개발자 하워드
2023. 6. 8. 21:38
https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
오늘 풀어본 문제는
1676번 팩토리얼 0의 개수입니다.
처음에
문제를 잘 이해하지 못했습니다.
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
10! 10*9*8*7*6*5*4*3*2*1에서 0의 개수가 1개인데
테스트 케이스는 왜 2라고 하지? 했는데
다시 보니
10! = 3628800
그래서 2개구나..
멍청했구나..
싶었습니다..ㅎㅎ
import sys
input = sys.stdin.readline
def facto(n):
if n <= 1:
return 1
else:
return n * facto(n-1)
n = int(input())
# print(facto(n))
a = str(facto(n))
# print(a)
cnt = 0
for i in range(len(a)-1,-1,-1):
if a[i] == '0':
cnt += 1
else:
break
print(cnt)
코드는 이렇게 짰는데
먼저 팩토리얼 수를 구할 함수를 적고
구한 팩토리얼값을
문자열로 바꿨습니다.
그리고 뒤에서 부터 0의 개수를 세는데
0이 아니면 바로 루프를 중단 시켜서
0의 개수세는 것을 멈춥니다.
그러면 정답이 됩니다.
더 좋은 코드도 있을 것이니까
다른 분 코드도 참고하세요~!