알고리즘(백준)/동적 계획법
[알고리즘/동적 계획법] 2407번 : 조합 - python
되다
2023. 4. 2. 23:59
링크 : https://www.acmicpc.net/problem/2407
2407번: 조합
n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n)
www.acmicpc.net
- 문제
- 소요시간: 6분 30초
- 설계하기(접근방법)
1. n과 m을 입력받는다
2. 동적 계획법으로 풀어보자
dp를 n+1개 만큼 생성한 후
팩토리얼을 생성하기 위해서
dp[n] = dp[n-1] * n 을 반복해준다
3. 조합식 형식에 맞추어 출력해준다
- 코드(출력)
n, m = map(int, input().split())
dp = [0] * (n + 1)
dp[0] = 1
dp[1] = 1
for i in range(2, n + 1):
dp[i] = i * dp[i - 1]
comb = dp[n] // (dp[n-m] * dp[m])
print(comb)
- 얻어갈 부분
1. 동적 계획법으로 풀 경우 일반적인 팩토리얼보다 느리긴 했지만 재사용성이 뛰어나다.