알고리즘 정복하기!/백준 문제풀이

백준 1676번 Python / Math

by seokii 2022. 2. 16.
728x90
반응형

문제 링크

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

 

1676번: 팩토리얼 0의 개수

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

www.acmicpc.net

 

풀이

n = int(input())
cal = 1

for i in range(1, n+1):
    cal = cal*i

arr = list(str(cal))
cnt = 0
for i in range(len(arr)-1, 0, -1):
    if arr[i] == '0': cnt+=1
    else : break

print(cnt)

먼저, for문을 통해 팩토리얼 계산을 수행했습니다.

그리고 결괏값을 문자열로 바꾸어 리스트에 하나하나씩 저장했습니다.

마지막으로, for문으로 역순으로 순회를 하며 0이 나오면 cnt를 1씩 증가시키고

그렇지 않으면 break를 통해 종료했습니다.

정답으로 카운트된 수를 출력했습니다.

 

 

728x90
반응형

댓글