solved.ac의 클래스 문제를 하나씩 풀어나가고 있는데 백준 11050번 이항 계수 1 문제를 풀었다.

팩토리얼을 반복문으로 돌려서 풀었는데 N이 10이하라서 그런지 시간초과가 안났다.
그래서 재귀 복습할 겸 재귀로도 풀어봤다.
1) 팩토리얼 반복문 구현
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
result = 1
for i in range(k):
result *= n
n -= 1
divisor = 1
for i in range(2, k+1):
divisor *= i
print(result // divisor)
2) 재귀로 구현
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
def factorial(n):
if n <= 1: return 1
return n * factorial(n-1)
# 조합 공식 nCk = n!/(n-k)!k!
print( factorial(n) // (factorial(n-k) * factorial(k)) )
오랜만에 조합 공식과 재귀도 복습해서 좋은 문제였다.