[백준] 1676번 팩토리얼 0의 개수 _ Python
·
Algorithms/Math
[초기 접근 방법] 1. N! 을 구하자 2. 0의 개수를 세자 [생각] 위와 같이 심플한 방법으로 접근하면 문제에서 N의 범위가 500까지이기 때문에 'OverflowError'가 발생한다. 따라서 OverFlow를 방지하기 위해 N!을 하는 과정에서 수의 크기를 관리해주어야 한다. 이 때, N!의 1의 자리만 보존해도 되기 때문에 다음과 같이 코드를 작성한다. # 10으로 나눠질 경우 if fact % 10 == 0: while True: # 1의 자리만 남기도록 한다. if fact % 10 != 0: fact %= 10 break fact /= 10 zeroCount += 1 [코드] # 풀이 시간 : 10 + 25분 # 시간복잡도 : O(N) # 공간복잡도 : O(1) # 참고 : - # 왜 ..