본문 바로가기

PS

백준 15649번 N과 M(1) C++ code

 가장 기본적인 back-tracking 문제이다. n-queen problem의 축소판이라고 생각해도 될 듯

반복문 안에 재귀형태가 들어있는 구조라 처음 코드를 접했을 때 이해하기 어려운 부분이 많았다. 그래서 직접 값을 대입해보면서 어떻게 흘러가는지 파악하였다. (재귀호출 부분에 함수의 코드를 통채로 치환시켜서 이해해봐도 될 듯)

스택(재귀)를 이용하여 모든 경우를 탐색한다는 점에서 dfs와 일맥상통하는 부분도 있다.

디테일한 조건은 check와 다른 변수를 통해 설정

사이클 범위를 잘 파악하여 돌아왔을 때 해제해줘야 하는 값이 있는지 확인하자. iterator삭제 연산에서 재정의 또는 이번 코드의 check배열 등.

while문으로 구성하려 해보았으나, check해제하는 게 힘들더라.

'PS' 카테고리의 다른 글

자료구조 Hash  (0) 2020.05.13
Sorting Method  (0) 2020.05.04
자료구조 List  (0) 2020.04.22
자료구조 Graph  (0) 2020.04.21
자료구조 Heap  (0) 2020.04.20