본문 바로가기

알고리즘/Baekjoon

완전 탐색. [2798]

[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