알고리즘 풀이/백준

[백준 1676] 팩토리얼 0의 개수

mhko411 2021. 3. 5. 17:13
728x90

문제

N!에서 뒤에서부터 봤을 때 0이 아닌 수가 나올 때까지 0의 개수를 구하라.

 

입력

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

 

출력

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


접근

팩토리얼을 구하고 리스트로 변경한 후에 뒤에서부터 0의 개수를 카운트한다.

 

구현

먼저 반복문을 통해 팩토리얼을 구하여 total에 저장한다.

이후 total을 리스트로 변환하여 각 인덱스에 숫자가 차례대로 위치하도록 한다.

이후 reversed()를 통해 리스트를 뒤집은 후 원소를 꺼내어 0이 나올 때까지 카운트한다.

N = int(input())
total = 1
for n in range(1, N+1):
    total *= n

total = list(map(int, str(total)))
answer = 0
for i in reversed(total):
    if i == 0:
        answer += 1
    else:
        break
print(answer)

'알고리즘 풀이 > 백준' 카테고리의 다른 글

[백준 11727] 2 x n 타일링 2  (0) 2021.03.07
[백준 1697] 숨바꼭질  (0) 2021.03.05
[백준 2630] 색종이 만들기  (0) 2021.03.04
[백준 4948] 베르트랑 공준  (0) 2021.03.04
[백준 1929] 소수 구하기  (0) 2021.03.04