© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 2553 - 마지막 팩토리얼 수

2025-07-15
BOJ
실버 II
python
원본 문제 보기
수학
정수론

문제

BOJ 2553 - 마지막 팩토리얼 수

N!의 0이 아닌 마지막 자릿수를 구하라.

입력

정수 N이 주어진다 (N은 20,000 이하).

출력

N!의 0이 아닌 마지막 자릿수를 출력한다.

예제

입력출력
52

풀이

N!을 직접 계산한 뒤 끝에서부터 0이 아닌 자릿수를 찾는다.

  1. 1부터 N까지 곱하여 N!을 계산한다
  2. 결과를 문자열로 변환하여 끝에서부터 탐색한다
  3. 처음 만나는 0이 아닌 자릿수를 출력한다

핵심 아이디어: Python의 큰 수 연산으로 N!을 직접 계산할 수 있고, 문자열 역순 탐색으로 답을 찾는다.

코드

n = int(input())
ans = 1
for i in range(1,n+1):
	ans *= i
ans = str(ans)
for i in range(len(ans)-1,-1,-1):
	
	if int(ans[i]) != 0:
		print(ans[i])
		break

복잡도

  • 시간: O(N)
  • 공간: O(N)