관리 메뉴

한다 공부

[C++] 백트래킹 본문

Algorithm/정리

[C++] 백트래킹

사과당근 2022. 2. 26. 00:50

백트래킹이란?

브루트 포스와 같이 완전 탐색을 하는 알고리즘이 있는데, 여기서 조건에 해당되지 않는 경우를 가지치기 하여 경우의 수를 줄여나가는 방법을 백트래킹이라고 한다. 백트래킹을 이용하면 탐색 시간이 줄어든다.

 

백트래킹에서는 주로 재귀함수를 이용한다. 이때, 재귀함수의 종료조건이 중요하다.

백트래킹은 주로 N의 값이 20보다 작을 때 이용한다.

 

백트래킹을 정리하자면

1. 종료 조건을 잘 설정하자

2. 입력 범위가 작을 때 (N<20) 사용하자

3. 재귀함수를 사용하자

3. 원래 상태로 돌려주는 것을 잊지 말자

정도가 된다.

 

 

 

 

 

[C++] 백준 알고리즘 15649 N과 M (1) (백트래킹) (tistory.com)

 

[C++] 백준 알고리즘 15649 N과 M (1) (백트래킹)

15649번: N과 M (1) (acmicpc.net) 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수

sxyzn.tistory.com

 

'Algorithm > 정리' 카테고리의 다른 글

[C++] 그리디  (0) 2022.02.26
[C++] 동적 계획법, 냅색  (0) 2022.02.26
[C++] 에라토스테네스의 체  (0) 2022.02.26
[C++] 유클리드 호제법  (0) 2022.02.26
[C] 우선순위 큐 : 히프정렬 (heap)  (0) 2021.08.21