jyamethyst21 님의 블로그

백준 27433번 - 팩토리얼 2 (PYTHON 풀이) 본문

CODING 💻

백준 27433번 - 팩토리얼 2 (PYTHON 풀이)

jyamethyst21 2025. 9. 16. 14:53

문제:

 

예전 수학시간에 배웠던 팩토리얼과 관련된 문제이다. 팩토리얼에 대해 까먹은 분들을 위해 간단히 설명하겠다.

특정 값을 받았다면 그로부터 1까지 -1씩 진행하며 곱해주면 된다. 예를 들어 입력값이 3이라면 3*2*1=6이 출력되면 된다.

 

풀이: 

n = int(input())
    
def factorial(a):
    if a == 0 or a == 1:
        return 1
    return a*factorial(a-1)
print(factorial(n))

이를 코드로 작성하면 다음과 같다.

우선 예외 상황인 0,1을 입력받으면 이는 무조건 1을 출력해야하니 조건문으로 걸어주고, 그 외에는 재귀함수처럼 -1씩 감소시켜주며 진행하다가 a가 1이 됐을 때 이를 return 해주도록하여 자연스럽게 마지막 *1이 실행되도록 한다.