가장 단순히 1보다 작거나 같을 경우에 return 하는 재귀 풀이 def fectorial(n): if 1>=n: return 1 return n*fectorial(n-1) print(fectorial(int(input()))) 배열에 값을 추가하면서 해당 값이 존재하다면 바로 return 하는 재귀 풀이 def fectorial(n): if li[n]: return li[n] li[n] = n*fectorial(n-1) return li[n] n = int(input()) li = [0]*(n+1) li[0] = 1 fectorial(n) print(li[n])