1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117## λ¬Έμ μ€λͺ
ν
μ΄λΈ μμ λμΈ νΌμ¦ μ‘°κ°μ κ²μ 보λμ λΉ κ³΅κ°μ μ μ ν μ¬λ €λμΌλ € ν©λλ€. κ²μ 보λμ ν
μ΄λΈμ λͺ¨λ κ° μΉΈμ΄ 1x1 ν¬κΈ°μΈ μ μ¬κ° 격μ λͺ¨μμ
λλ€. μ΄λ, λ€μ κ·μΉμ λ°λΌ ν
μ΄λΈ μμ λμΈ νΌμ¦ μ‘°κ°μ κ²μ 보λμ λΉμΉΈμ μ±μ°λ©΄ λ©λλ€.
- μ‘°κ°μ ν λ²μ νλμ© μ±μ λ£μ΅λλ€.
- μ‘°κ°μ νμ μν¬ μ μμ΅λλ€.
- μ‘°κ°μ λ€μ§μ μλ μμ΅λλ€.
- κ²μ 보λμ μλ‘ μ±μ λ£μ νΌμ¦ μ‘°κ°κ³Ό μΈμ ν μΉΈμ΄ λΉμ΄μμΌλ©΄ μ λ©λλ€.
λ€μμ νΌμ¦ μ‘°κ°μ μ±μ°λ μμμ
λλ€.

μ κ·Έλ¦Όμμ μΌμͺ½μ νμ¬ κ²μ 보λμ μνλ₯Ό, μ€λ₯Έμͺ½μ ν
μ΄λΈ μμ λμΈ νΌμ¦ μ‘°κ°λ€μ λνλ
λλ€. ν
μ΄λΈ μμ λμΈ νΌμ¦ μ‘°κ°λ€ λν λ§μ°¬κ°μ§λ‘ [μ,ν,μ’,μ°]λ‘ μΈμ ν΄ λΆμ΄μλ κ²½μ°λ μμΌλ©°, ν° μΉΈμ νΌμ¦μ΄ λμ΄μ§ μμ λΉ κ³΅κ°μ λνλ
λλ€. λͺ¨λ νΌμ¦ μ‘°κ°μ 격μ μΉΈμ λ± λ§κ² λμ¬μμΌλ©°, 격μ μΉΈμ λ²μ΄λκ±°λ, κ±Έμ³ μλ λ± μλͺ» λμΈ κ²½μ°λ μμ΅λλ€.
μ΄λ, μλ κ·Έλ¦Όκ³Ό κ°μ΄ 3,4,5λ² μ‘°κ°μ 격μ μΉΈμ λμΌλ©΄ κ·μΉμ μ΄κΈλλ―λ‘ λΆκ°λ₯ν κ²½μ°μ
λλ€.

- 3λ² μ‘°κ°μ λκ³ 4λ² μ‘°κ°μ λκΈ° μ μ μμͺ½μΌλ‘ μΈμ ν μΉΈμ λΉμΉΈμ΄ μκΉλλ€.
- 5λ² μ‘°κ°μ μ μμΌλ‘ μΈμ ν μΉΈμ λΉμΉΈμ΄ μκΉλλ€.
λ€μμ κ·μΉμ λ§κ² μ΅λν λ§μ μ‘°κ°μ κ²μ 보λμ μ±μ λ£μ λͺ¨μ΅μ
λλ€.

μ΅λν λ§μ μ‘°κ°μ μ±μ λ£μΌλ©΄ μ΄ 14μΉΈμ μ±μΈ μ μμ΅λλ€.
νμ¬ κ²μ 보λμ μν `game_board`, ν
μ΄λΈ μμ λμΈ νΌμ¦ μ‘°κ°μ μν `table`μ΄ λ§€κ°λ³μλ‘ μ£Όμ΄μ§λλ€. κ·μΉμ λ§κ² μ΅λν λ§μ νΌμ¦ μ‘°κ°μ μ±μ λ£μ κ²½μ°, μ΄ λͺ μΉΈμ μ±μΈ μ μλμ§ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
<br><br>
## μ νμ¬ν
> - 3 β€ `game_board`μ ν κΈΈμ΄ β€ 50
> - `game_board`μ κ° μ΄ κΈΈμ΄ = `game_board`μ ν κΈΈμ΄
> - μ¦, κ²μ 보λλ μ μ¬κ° 격μ λͺ¨μμ
λλ€.
> - `game_board`μ λͺ¨λ μμλ 0 λλ 1μ
λλ€.
> - 0μ λΉμΉΈ, 1μ μ΄λ―Έ μ±μμ§ μΉΈμ λνλ
λλ€.
> - νΌμ¦ μ‘°κ°μ΄ λμΌ λΉμΉΈμ 1 x 1 ν¬κΈ° μ μ¬κ°νμ΄ μ΅μ 1κ°μμ μ΅λ 6κ°κΉμ§ μ°κ²°λ ννλ‘λ§ μ£Όμ΄μ§λλ€.
> - `table`μ ν κΈΈμ΄ = `game_board`μ ν κΈΈμ΄
> - `table`μ κ° μ΄ κΈΈμ΄ = `table`μ ν κΈΈμ΄
> - μ¦, ν
μ΄λΈμ `game_board`μ κ°μ ν¬κΈ°μ μ μ¬κ° 격μ λͺ¨μμ
λλ€.
> - `table`μ λͺ¨λ μμλ 0 λλ 1μ
λλ€.
> - 0μ λΉμΉΈ, 1μ μ‘°κ°μ΄ λμΈ μΉΈμ λνλ
λλ€.
> - νΌμ¦ μ‘°κ°μ 1 x 1 ν¬κΈ° μ μ¬κ°νμ΄ μ΅μ 1κ°μμ μ΅λ 6κ°κΉμ§ μ°κ²°λ ννλ‘λ§ μ£Όμ΄μ§λλ€.
> - `game_board`μλ λ°λμ νλ μ΄μμ λΉμΉΈμ΄ μμ΅λλ€.
> - `table`μλ λ°λμ νλ μ΄μμ λΈλ‘μ΄ λμ¬ μμ΅λλ€.
<br>
---
<br>
## μ
μΆλ ₯ μ

<br>
## μ
μΆλ ₯ μ μ€λͺ
> **μ
μΆλ ₯ μ #1**
> μ
λ ₯μ λ€μκ³Ό κ°μ ννμ΄λ©°, λ¬Έμ μ μμμ κ°μ΅λλ€.
> 
> **μ
μΆλ ₯ μ #2**
> λΈλ‘μ νμ μ κ°λ₯νμ§λ§, λ€μ§μ μλ μμ΅λλ€.
<br>
---
<br>
~~## νμ΄~~
~~## solution.js~~
## λ¬Έμ νμ & κ°λ
μ΄ν΄
- μ€λμ λ¬Έμ λ₯Ό νκΈ°κ° μ΄λ €μμ λ¬Έμ μ κ°λ
κ³Ό μ¬μ©λλ μκ³ λ¦¬μ¦μ λν΄ νλ² μ 리νλ©΄μ μ΄ν΄νλ €κ³ νλ€.
> - ν΅μ¬ ν€μλ
> **κΉμ΄μ°μ νμ(DFS) & νμ λ³ννλ ¬(Rotation matrix)**
- κ°κ°μ ν€μλμ λν μμΈν κ°λ
μ μ 리 νμ ν¬μ€ν
ν μκ°μ΄λ€.
<br>
### λ¬Έμ νμ
λ¨Όμ μ νμ¬νμ 보면 `game_board`μ `table`μ ν¬κΈ°κ° κ°λ€λ κ²μ μ μ μκ³ ,
`table`μ `block`μ `game_board`μ μ±μ λ£μ λ μλ‘ μνμ’μ°κ° μΈμ νλ©΄ μλλ€.
1. μ°μ `game_board`λ₯Ό λ§λ€μ΄μΌ νλ―λ‘ `game_board`μ ν΄λΉνλ λ°°μ΄μ λ§λ€μ΄μΌ νλ€. (μ΄κΈ°μλ μ무κ²λ μμΌλ―λ‘ 0μ λΉ λ°°μ΄μ κ°μΌλ‘ λ£λλ€.)
2. `table`μ νΌμ¦ μ‘°κ°μ νμ ν λ΄μ©κΉμ§ μμλΈλ€.
3. `game_board`μ νΌμ¦μ΄ λ€μ΄κ°λ λΆλΆκ³Ό λ€μ΄κ°μ§ μμ λΆλΆμ νμΈνλ€.
μΌλ¨ λ¬Έμ λ₯Ό λ³΄κ³ λ΄κ° μκ°ν κ²μ μ¬κΈ°κΉμ§μ΄λ€.
### κ°λ
μ΄ν΄
- κΉμ΄μ°μ νμ (DFS)
μνμ’μ°μ μΉΈλ€μ΄ λͺ¨λ λΉμ΄μλμ§ μ±μμ‘λμ§ μμ°¨μ μΌλ‘ λͺ¨λ νμΈνκ³ λΉμ΄μκ³ λ€μ΄κ° μ μλ νΌμ¦ μ‘°κ°μ λ°°μΉνλ€. κ·Έ ν κ°μ λ°©μμΌλ‘ λ€μ μ‘°κ°μ λΉκ΅νμ¬ λ°°μΉ, μ μ₯νλ€.
- νμ λ³ννλ ¬ (Rotation matrix)
νΌμ¦μ‘°κ°μ νμ ν μ μμΌλ―λ‘ νμ μ μ μ©λλ νλ ¬μ ꡬνκ³ λ°°μΉνκΈ° μν΄ μ¬μ©λλ€.
<br>
## λ°°μ΄ μ & λλ μ
- μμ μ μ½λμ€ν
μ΄μΈ μμ νλ n-queensμ λΉμ·ν λλμ΄ λ¬λ€.
- κ°μκΈ° λμ΄λκ° μ¬λΌκ°λ―ν΄μ λ§μ΄ λΉν©μ€λ¬μ κ³ λ¬Έμ ν΄μκ³Ό νΈλλ°μ 걸리λ μκ°μ΄ κΈΈμ΄μ‘λ€.
- νμ λ³ννλ ¬μ μ νλ³νμ μ±μ§ μ€ νλλΌκ³ νλ€. λ€μν μκ³ λ¦¬μ¦μ μ μ©νμ¬ λ¬Έμ λ₯Ό λΉ λ₯΄κ² νκΈ° μν΄μλ μ’ λ κΉκ² 곡λΆν νμκ° μλ κ² κ°λ€.