최대 1 분 소요

1. 문제

[Bronze III] 팩토리얼 - 10872

문제 링크

성능 요약

메모리: 30864 KB, 시간: 68 ms

분류

구현(implementation), 수학(math)

문제 설명

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.

출력

첫째 줄에 N!을 출력한다.

출처: 백준, https://https://www.acmicpc.net/

2. 해결방법 시간복잡도

  1. 단순 코딩, 재귀문 1번 호출 O(N)

3. 문제 해결 및 코드


  • 주석을 참고하면서 이해를 돕습니다.

4. 알고리즘 및 해설

  1. N!를 구하기위해 재귀문을 통해 해당 값 - 1을 반복적으로 호출하여 최종적으로 해당 정수까지의 곱을 구한다.
  2. F(N) = F(N - 1) * F(N - 2) * … F(0)

5. 짚고 넘어가기

  1. 팩토리얼 문제는 1부터 해당 수까지의 곱이다. 단순 반복으로도 해결이 가능하다.
  2. math 라이브러리를 통해서 간단하게 구현도 가능하다.
import math
print(math.factorial(N)) # N값까지의 팩토리얼