[백준 Python] - 1676 팩토리얼 0의 개수
- Data Science/PS (Python)
- 2024. 4. 10.
250x250
728x90
1. 문제 - 1676번

2. 접근법
팩토리얼의 결과값에서 1의 자리부터 0이 아닌 수가 나올 때까지 0의 개수를 구하는 문제다.가령,5! = 120으로 0이 1개,
10! = 3628800으로 0이 2개
이런 식으로 계산된다.
<정답 코드>
def factorial(num):
factorial = 1
for i in range(num, 0, -1):
factorial *= i
return f'{factorial}'[::-1]
def count_zero(num):
fac = factorial(num)
cnt = 0
for i in fac:
if int(i) == 0:
cnt += 1
else:
break
return cnt
n = int(input())
print(count_zero(n))
우선 첫번째 함수로 팩토리얼을 구해준 후, 인덱스를 활용해 아랫 자리수부터 구하기 위해 문자열로 만들고 뒤집어 주었다.
두번째 함수에서 뒤집어진 팩토리얼 값을 가지고,
0이 나올때마다 cnt에 1을 더해주고 0이 아닌 수가 나오면 반복문을 종료해주어 중간에 나오는 0은 카운트되지 않도록 해주었다.
728x90
'Data Science > PS (Python)' 카테고리의 다른 글
[백준 Python] - 6588 골드바흐의 추측 (0) | 2024.04.14 |
---|---|
[백준 Python] - 2004 조합 0의 개수 (0) | 2024.04.11 |
[백준 Python] - 10872 팩토리얼 (0) | 2024.04.10 |
[백준 Python] - 11653 소인수분해 (0) | 2024.04.10 |
[백준 Python] - 1929 소수 구하기 '에라토스테네스의 체' (0) | 2024.04.07 |