[Baekjoon] - 1676. 팩토리얼 0의 개수(S4)

오동훈·2022년 1월 24일
0

Baekjoon

목록 보기
29/58
post-thumbnail

1. Problem 📃

📚 출처 - 1676 - 팩토리얼 0의 개수

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

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

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

입출력 예

예제 입력예제 출력
102
30

2. Logic 👨‍🏫

Logic 1
첫 번째 code는 있는 그대로 팩토리얼 값을 구해준 뒤, 문자열로 만들어 뒤의 0의 개수를 세어주는 방법으로 해결했습니다. 이 방법은 너무 간단해서 혹시나 다른 사람들은 어떻게 풀었나 보았더니 Logic 2와 같은 방법으로 해결했습니다.

Logic 2
아래의 사진은 실제로 팩토리얼 값을 나열한 사진입니다.
아래를 참고해보면 뒤의 0의 개수가 증가하는 시점이 5의 배수인 것을 알 수 있다.

3. Code 💻

1. 처음 푼 코드

N = int(input())

hap = 1
cnt = 0
for i in range(1, N+1):
    hap *= i

for i in str(hap)[::-1]:
    if i == '0':
        cnt += 1
    else:
        break

print(cnt)

2. 두 번째로 푼 코드 😁

N = int(input())
count = 0
 
while (N >= 5):
	count += int(N / 5)
	N //= 5

print(count)
profile
삽질의 기록들🐥

0개의 댓글