공부/2024 항해99코딩클럽
99클럽 3기 코테 스터디 16일차 TIL /[프로그래머스] N-Queen 자바
푸딩코딩
2024. 8. 6. 23:58
728x90
반응형
1. 오늘의 학습 문제
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12952
코드
import java.util.*;
class Solution {
// 2차원 배열 문제를 1차원으로 압축
// 배열의 index를 행, 배열의 값을 열로 잡자.
int[] board;
int count=0;
public int solution(int n) {
board= new int[n];
backTracking(n,0);
return count;
}
public void backTracking(int n,int row){
if(row==n){
count++;
return;
}
for(int i=0;i<n;i++){
board[row]=i;
if(possible(row)){
backTracking(n,row+1);
}
}
}
public boolean possible(int row){
for(int i=0;i<row;i++){
//가로가 같을때
if(board[i]==board[row]){
return false;
}
//대각선 (기울기)가 같을때
if(Math.abs(row-i)==Math.abs(board[row]-board[i])){
return false;
}
}
return true;
}
#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL
728x90
반응형