
백트레킹의 중심 아이디어는 재귀의 깊이를 명시적으로 설정한다는 것에 있다. 다만 n-queen문제와 같이 응용된 문제의 경우에는 무엇을 깊이로 할지 설정 해야하는 어려움이 있다. 물론 n-queen 문제의 풀이방식에는 여러가지가 있겠지만은 백트레킹으로 풀었다. 퀸을 두면서 check해야 되는 배열은 4가지가 있다. 종류로는 행, 열, 왼쪽 위 대각선, 오른쪽 위 대각선이 있다.
이때 재귀의 깊이로 행 check를 하고, for반복문을 돌리면서 나머지 열, 왼쪽 위 대각선, 오른쪽 위 대각선에 대한 check를 수행했다. 나머지 수행은 기본 백트레킹 문제와 동일하기 때문에 생략하겠다.
'PS' 카테고리의 다른 글
백준 14888번: 연산자 끼워넣기 C++ Code (0) | 2020.09.27 |
---|---|
백준 2508번: 스도쿠 C++ Code (0) | 2020.09.17 |
백준 2579번: 계단 오르기 C++ Code (0) | 2020.09.17 |
백준 1932번: 정수 삼각형 C++ Code (0) | 2020.09.16 |
백준 1149번: RGB거리 C++ Code (0) | 2020.09.13 |