- 백준 2407 조합 Silver II
- 문제링크
나의 접근
nCr을 구하는 문제로, 동적계획법으로 n! / r!(n - r)! 를 계산하면 된다. 팩토리얼을 어떻게 구현하는 것이 관건이다. N번째에 해당하는 factorial을 재귀적으로 계산해나가며 딕셔너리에 key, value로 저장한다.
import sys
N, R = map(int, sys.stdin.readline().split())
def dp(num):
arr = {}
if num in arr:
return arr[num]
elif num == 0 or num == 1:
arr[num] = 1
return 1
else:
factorial = num * dp(num - 1)
arr[num] = factorial
return factorial
ans = dp(N) // (dp(R) * dp(N - R))
print(ans)
'개발공부 > algorithm' 카테고리의 다른 글
[백준][python] 9658.돌게임4 - DP (0) | 2021.04.11 |
---|---|
[백준][python] 1793.타일링 - DP (0) | 2021.04.11 |
[백준][python] 3055.탈출 - DP (0) | 2021.04.11 |
[백준][python] 1806.부분합 - 이분탐색 (0) | 2021.04.04 |
[백준][python] 1931.회의실배정 - Greedy (0) | 2021.04.03 |