[백준] N-Queen 9663 (Gold 4) - C++
·
Algorithms/Problem Solving
문제 링크 : https://www.acmicpc.net/problem/9663문제 요약N×N 체스판 위에 N개의 퀸을 서로 공격하지 않도록 배치하는 문제다.퀸은 가로, 세로, 대각선 방향으로 모두 공격할 수 있다.결국 조건은 이거다.같은 행에 두 개 있으면 안 되고같은 열에 두 개 있으면 안 되고같은 대각선 위에 있어도 안 된다풀이 사고 과정이 문제는 조금만 생각해보면 형태가 단순해진다.각 행에는 어차피 퀸을 하나씩만 놓으면 된다.그렇다면 문제는 이렇게 바뀐다.각 행에 하나씩 퀸을 두되,열과 대각선이 겹치지 않도록 배치하라. 이제 “행”은 깊이(depth)로 보고,각 depth마다 “어느 열에 둘 것인가”를 결정하면 된다.그래서 자연스럽게 백트래킹을 떠올렸다.첫 번째 행에서 가능한 열에 하나 놓고,두 ..