반응형

-풀이

N = int(input())
factorial = 1
count = 0
for i in range(1,N+1):
  factorial *= i
factorial = str(factorial)
for j in range(len(factorial)-1, -1, -1):
  if factorial[j] == '0':
    count += 1
    try:
      if factorial[j-1] == '0':
        continue
      else:
        break
    except:
      break
  else:
    break
print(count)

-풀이 설명(느낀점)

[20분 sol] 반복문 i로 팩토리얼 값을 구하고 반복문 j에 뒤 인덱스부터 차례대로 '0'일 경우 count변수에 1을 더해주어 값을 구했다.

다른 사람의 풀이를 보니 훨씬 쉬운 방법이 있었다.

from math import factorial
n = int(input())
cnt = 0

for i in str(factorial(n))[::-1] :
    if i != '0' :
        break
    cnt += 1
    
print(cnt)

팩토리얼은 math모듈의 factorial함수로 구하고 [::-1]로 뒤에서부터 차례대로 가져와 0과 비교하여 답을 도출해낼 수 있었다.

+ Recent posts