📄문제

✏️풀이
재영
- 제 기준은 기능에 따라 4개의 함수를 필요로 함니다.
solveNQueens: 메인 함수. 조건에 맞는 결과 퉤!check: 가지를 칠지 말지 결정!makeQueenMap: 리턴 값에 맞게 맵을 만들고 반환!backTracking:res를 만들도록 백트래킹 구현,res반환!
- 일단 결국 Queen이 움직이는 건 행/열/대각선.
이러한 변수들을 조금이라도 줄이고자 저는
cols라는 배열로queen의 위치를 저장했어유.
만약
cols의 length가 n개라면, 실제 queen도 n의 행까지 채웠다!는 것을 의미하쥬.
그러면 이제 행은 무시해도 돼유. 배열 길이로 고려했기에 절대 겹칠 수가 없으니까유.- 그리고
cols의 특정 인덱스 값이 y라면, 이제 y는 더이상 못 씀니다. 그러면 이제 우리는 열 조건까지 고려했어유.
- 그렇다면 결과적으로, 우리는 이제 대각선을 고려해야 하는데,
행간 길이 차이 === 열간 길이 차이를 만족하면 대각선 위치에 놓인 거에유.
자, 이렇게 조건을 비교하는
check는 완료했어유.
- 그래프를 잘 꾸며줍시다.
makeQueenMap에 대한 설명은 생략할게유! (그저 조건에 맞게)
- 만약 이제 체크를 한 상태에서
cols.length === n이라면, 결국queen을 마지막 행까지 채웠단 거쥬. 따라서res에 추가해줍니당.
- 그럼 이제 끝났어유! 반환되는 값에 따라
res를 업데이트 해주면 됩니당.