[백준/BOJ][Python] 11050번 이항 계수 1

Eunding·2024년 3월 26일
0

algorithm

목록 보기
3/107

오늘의 회고

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)) )

오랜만에 조합 공식과 재귀도 복습해서 좋은 문제였다.

0개의 댓글