Skip to content

Commit

Permalink
2024-05-19 solved
Browse files Browse the repository at this point in the history
  • Loading branch information
SeongHoonC committed May 19, 2024
1 parent 3553f9c commit ea14dee
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions SeongHoonC/dfs/nqeen.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import java.io.BufferedReader
import java.io.InputStreamReader

var answer = 0
var n: Int = 0
lateinit var board: IntArray
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
n = br.readLine().toInt()
board = IntArray(n)
backTracking(0)
println(answer)
}

private fun backTracking(row: Int) {
// row κ°€ μ¦κ°€ν•˜λ‹€κ°€ n μ΄λž‘ 같아지면 μ •λ‹΅ +1
if (row == n) {
answer++
return
}
// row 일 λ•Œ 각 열에 놓을 경우의 수
for (col in 0 until n) {
board[row] = col
// 놓을 수 μžˆλ‹€λ©΄ λ‹€μŒ ν–‰
if (check(row)) backTracking(row + 1)
}
}

private fun check(row: Int): Boolean {
for (i in 0 until row) {
// 행이 κ°™κ±°λ‚˜
if (board[row] == board[i]) {
return false
}
// λŒ€κ°μ„ 
if (row - i == kotlin.math.abs(board[row] - board[i])) {
return false
}
}
return true
}

0 comments on commit ea14dee

Please sign in to comment.