HyeLog
[알고리즘] 브루트포스 - 재귀 본문
주로 보이는 재귀 함수의 패턴
1) 정답을 찾은 경우 Ex.) cnt == 6
2) 불가능한 경우 Ex.) index == a.size()
3) 다음 경우 (다음 호출) Ex.) solve(a, index+1, cnt+1); solve(a, index+1, cnt);
각 경우의 특징
- 3번의 경우, 호출 함수들의 순서가 중요할 때도 있고 상관 없을 때도 있다.
- 경우의 수 / 최댓값을 구하는게 목표이면 순서가 중요하지 않지만 (어짜피 브루트포스로 모든 경우를 다 해보므로)
- 정답을 출력하는 조건이 정해져 있다면(Ex. 사전순 출력) 순서를 고려해야 한다.
- 1번과 2번 중 무엇이 먼저 와야하는지도 생각해 보아야 한다.
'CS' 카테고리의 다른 글
[알고리즘] 브루트포스 - 비트마스크 (0) | 2022.05.11 |
---|---|
[알고리즘] 브루트포스 - 순열 (0) | 2022.05.10 |
[C++] 벡터(Vector) 최댓값, 최솟값 인덱스 구하기 (0) | 2022.01.31 |
[자료구조] 이중 연결 리스트 (Doubly Linked List) (0) | 2021.10.18 |
[C++] STL 컨테이너 - 덱(Deque) (0) | 2021.10.17 |