백준 27433번: 팩토리얼 2 python

tomkitcount·2025년 4월 22일

매일 알고리즘

목록 보기
35/301

📌 문제 요약

🔗 문제 보러가기

재귀함수를 이용하여 팩토리얼을 구현하는 간단한 문제이다.

  • 입력: 0 ≤ N ≤ 20
  • 출력: N!

🔁 재귀함수란?

함수가 자기 자신을 호출하여 문제를 해결하는 방식.

🧠 개념 요약

  • 종료 조건(Base Case)을 반드시 명시해야 함
  • 점점 더 작은 문제로 나누다 보면 결국 base case에 도달하여 호출이 종료됨

💻 내 해답 (재귀함수 사용)

import sys

def factorial(n):
    if n == 0 or n == 1:     # 종료 조건 (base case)
        return 1
    else:                    # 재귀 호출
        return n * factorial(n - 1)

n = int(sys.stdin.readline())
print(factorial(n))

n 을 1로 안하고 0까지 포함해주는 이유는 n에 0이 들어가면
factorial(0)
→ return 0 factorial(-1)
→ return -1
factorial(-2)

→ 계속 내려가다가 ❗️RecursionError (무한재귀) 발생하기 때문

잡기술

else:는 생략해도 됨!

def factorial(n):
    if n == 0 or n == 1:
        return 1
    return n * factorial(n - 1)

도 가능하다!

profile
To make it count

0개의 댓글