본문 바로가기
공부/2024 항해99코딩클럽

99클럽 3기 코테 스터디 16일차 TIL /[프로그래머스] N-Queen 자바

by 푸딩코딩 2024. 8. 6.
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
반응형