diff --git a/SeongHoonC/README.md b/SeongHoonC/README.md
index 4d2959be..e8dbcae8 100644
--- a/SeongHoonC/README.md
+++ b/SeongHoonC/README.md
@@ -24,5 +24,6 @@
| 20차시 | 2024.04.07 | DP | 앱 |https://github.com/AlgoLeadMe/AlgoLeadMe-6/pull/75 |
| 21차시 | 2024.04.11 | DP | RGB거리 |https://github.com/AlgoLeadMe/AlgoLeadMe-6/pull/77 |
| 22차시 | 2024.05.01 | DP | 가장 긴 증가하는 부분 수열 |https://github.com/AlgoLeadMe/AlgoLeadMe-6/pull/80 |
-| 23차시 | 2024.05.14 | ??? | 소수의 연속합 |https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/186 |
+| 23차시 | 2024.05.14 | 소수 | 소수의 연속합 |https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/186 |
+| 24차시 | 2024.05.18| 백트래킹 | n-queen |https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/192 |
---
diff --git a/SeongHoonC/dfs/nqeen.kt b/SeongHoonC/dfs/nqeen.kt
new file mode 100644
index 00000000..aa11ddf5
--- /dev/null
+++ b/SeongHoonC/dfs/nqeen.kt
@@ -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
+}