[1. 문제 설명]
https://www.acmicpc.net/problem/2798
[2. 풀이 접근]
시간 복잡도 분석
- 전체 100 개 중 3 가지를 선택해야 함.
=> 100C3 - 그러나 특정 조건을 만족해야 함.
=> 반드시 3개를 선택 하고 그 합이 M 을 넘지 않아야 함. - 이 조건을 통해 가지치기가 가능 함
기저 사례 혹은 가지 치기 할 수 있는 경우
- 3가지 카드를 선택 한 경우. (가지 치기)
=> 현재까지 합이 M 이하인 경우, 누적 합을 반환.
=> 현재까지 합이 M 초과한 경우, 0을 반환. - 이번에 선택 할 아이템이 배열의 범위를 벗어난 경우 (기저 사례)
=> 0을 반환. - 현재까지 합이 M 을 초과한 경우. (가지 치기)
=> 0을 반환.
문제 조건 상 반드시 3가지 카드는 선택되어야 한다.
선택 한 카드의 개수가 3미만 인데, 누적 합이 M 을 초과하면, 더 이상 조건을 맞출 수 없다.
[3. 코드]
'알고리즘 > Baekjoon' 카테고리의 다른 글
동적계획법. [11726] (0) | 2022.12.07 |
---|---|
분할 정복. [1074] (0) | 2022.12.06 |
완전 탐색. [14501] (0) | 2022.12.05 |
DP/최단거리 역추적. [11780] (0) | 2022.11.30 |
SCC. [3648] (0) | 2022.11.29 |