티스토리 뷰

알고리즘

[알고리즘] SWEA 2806 N-Queen

묵지수 2019. 11. 2. 15:22

문제링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GKs06AU0DFAXB&categoryId=AV7GKs06AU0DFAXB&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

풀이

 

 

풀이방법

 

가로 세로길이가 N인 체스판위에 N개의 퀸이 서로를 공격못하도록 하는 모든 경우의 수를 구하는 문제입니다.

주어진 N의 범위가 1부터 10이기 때문에 모든 경우의 수를 다 찾아보는 방법을 선택해도 된다고 생각했습니다.

 

풀이방식은 체스판의 맨 윗줄부터 순서대로 맨 밑 칸까지 한 행에 하나의 칸을 선택하는 방식으로 풀이했습니다.

이때, 체스판에서 지금까지 선택된 퀸의 위치를 고려하여 대각선 위치에 있거나 같은 열에 위치할 경우 다음 칸으로 넘어가도록 했습니다.

 

예를 들어, 가로세로 5인 체스판에서 2번째 줄까지 퀸의 위치가 선택되었고 3번째 줄에서 퀸의 위치를 선택할 경우를 가정합니다.

이때 3번째 줄에서 내가 놓으려고하는 퀸의 위치가 1번째 줄과 2번째 줄에 놓인 퀸 위치의 열과 대각선상 위에 있는 경우 다음 위치를 검사합니다.

3번째 줄에서 모든 위치가 적합하지 않다면 다시 2번째 줄의 퀸의 위치를 옮기면서 검사합니다.

 

마지막 줄까지 검사를 완료하면 1을 반환하여 경우의 수를 1증가 시키도록 해주었습니다.

'알고리즘' 카테고리의 다른 글

[알고리즘] 백준 2869  (0) 2019.11.17
[알고리즘] SWEA 1868 파핑파핑 지뢰찾기  (0) 2019.11.02
[알고리즘] 백준 13460  (1) 2019.10.13
[알고리즘] 백준 2309  (0) 2019.10.05
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함