-
[프로그래머스] N-QueenALGORITHM/PROGRAMMERS 2021. 9. 6. 10:49
https://programmers.co.kr/learn/courses/30/lessons/12952
코딩테스트 연습 - N-Queen
가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은
programmers.co.kr
2021-09-06
12345678910111213141516171819202122232425262728293031323334353637class Solution {static int answer;static int[] arr;static void solve(int row, int n) {if(row == n) {answer++;return;}for(int i = 0; i < n; i++) {arr[row] = i;if(possible(row)) {solve(row+1, n);}}}static boolean possible(int row) {for(int i = 0; i < row; i++) {if(arr[row] == arr[i]) return false;if(Math.abs(row - i) == Math.abs(arr[row] - arr[i])) return false;}return true;}static int solution(int n) {answer = 0;arr = new int[n];// solve(0, n);for(int i = 0; i < n; i++) {arr[0] = i;solve(1, n);}return answer;}}cs #문제풀이
1차원 배열을 이용해서, arr[열] = 행을 두고 풀었다.
line 30) 0번째 열부터 모두 돌려도 되고, 0번째 열은 행을 하나씩 집어넣고 1번째 열부터 돌려도 된다.
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 위클리 챌린지 6주차 (0) 2021.09.06 [프로그래머스] 하노이의 탑 (0) 2021.09.06 [프로그래머스] 가장 긴 팰린드롬 (0) 2021.09.01 [프로그래머스] 표 편집 (2021 카카오 채용연계형 인턴십) (0) 2021.09.01 [프로그래머스] 순위 (0) 2021.08.30