Brute-Force
Brute-force
brute-forceλ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν κ°λ¨νκ³ μ¬μ΄ μ κ·Όλ²
Just-do-it
force
μ μλ―Έλ μ¬λ(μ§λ₯)보λ€λ μ»΄ν¨ν°μ forceλ₯Ό μλ―Έ
brute-force λ°©λ²μ λλΆλΆμ λ¬Έμ μ μ μ© κ°λ₯
μλμ μΌλ‘ λΉ λ₯Έ μκ°μ λ¬Έμ ν΄κ²°(μκ³ λ¦¬μ¦ μ€κ³)μ ν μ μμ
λ¬Έμ μ ν¬ν¨λ μλ£(μμ, instance)μ ν¬κΈ°κ° μλ€λ©΄ μ μ©
νμ μ λλ κ΅μ‘μ λͺ©μ μ μν΄ μκ³ λ¦¬μ¦μ ν¨μ¨μ±μ νλ¨νκΈ° μν μ²λλ‘ μ¬μ©λ¨
Brute-force νμ (sequential search)
: μλ£λ€μ listμμ keyκ°μ μ°ΎκΈ° μν΄ μ²« λ²μ§Έ μλ£λΆν° λΉκ΅νλ©΄μ μ§ν
κ²°κ³Ό
νμ μ±κ³΅
νμ μ€ν¨
λͺ¨λ κ²½μ°μ μλ₯Ό μμ±νκ³ ν μ€νΈνκΈ° λλ¬Έμ μν μλλ λ리μ§λ§, ν΄λ΅μ μ°Ύμλ΄μ§ λͺ»ν νλ₯ μ΄ μμ
μμ κ²μμ μ λ ₯μ ν¬κΈ°λ₯Ό μκ² ν΄μ κ°νΈνκ³ λΉ λ₯΄κ² λ΅μ ꡬνλ νλ‘κ·Έλ¨μ μμ±ν¨
μ΄λ₯Ό κΈ°λ°μΌλ‘
그리λ κΈ°λ²
μ΄λλμ κ³νλ²
μ μ΄μ©ν΄μ ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ μ°Ύμ μ μμμ½λ©ν μ€νΈ λ±μμ λ¬Έμ λ₯Ό ν λ, μ°μ μμ κ²μμΌλ‘ μ κ·Όνμ¬ ν΄λ΅μ λμΆν ν, μ±λ₯ κ°μ μ μν΄ λ€λ₯Έ μκ³ λ¦¬μ¦μ μ¬μ©νκ³ ν΄λ΅μ νμΈνλ κ²μ΄ λ°λμ§ν¨
Baby-gin Game
μ€λͺ
0~9 μ¬μ΄μ μ«μ μΉ΄λμμ μμμ μΉ΄λ 6μ₯μ λ½μμ λ, 3μ₯μ μΉ΄λκ° μ°μμ μΈ λ²νΈλ₯Ό κ°λ κ²½μ°λ₯Ό runμ΄λΌ νκ³ , 3μ₯μ μΉ΄λκ° λμΌν λ²νΈλ₯Ό κ°λ κ²½μ°λ₯Ό tripletμ΄λΌκ³ νλ€.
κ·Έλ¦¬κ³ , 6μ₯μ μΉ΄λκ° runκ³Ό tripletμΌλ‘λ§ κ΅¬μ±λ κ²½μ°λ₯Ό baby-gin μΌλ‘ λΆλ₯Έλ€
6μ리μ μ«μλ₯Ό μ λ ₯ λ°μ baby-gin μ¬λΆλ₯Ό νλ¨νλ νλ‘κ·Έλ¨μ μμ±νλΌ.
μμ κ²μμ ν΅ν Baby-gin μ κ·Ό
κ³ λ €ν μ μλ λͺ¨λ κ²½μ°μ μ μμ±νκΈ°
6κ°μ μ«μλ‘ λ§λ€ μ μλ λͺ¨λ μ«μ λμ΄ (μ€λ³΅ ν¬ν¨)
ν΄λ΅ ν μ€νΈ νκΈ°
μμ 3μ리μ λ€μ 3μ리λ₯Ό μλΌ, runκ³Ό triplet μ¬λΆλ₯Ό ν μ€νΈνκ³ μ΅μ’ μ μΌλ‘ baby-gin νλ¨
μμ κ²μ
λ§μ μ’ λ₯μ λ¬Έμ λ€μ΄ νΉμ 쑰건μ λ§μ‘±νλ κ²½μ°λ μμλ₯Ό μ°Ύλ κ²
μ νμ μΌλ‘
μμ΄(permutation)
,μ‘°ν©(combination)
, 그리κ³λΆλΆ μ§ν©(subsets)
κ³Ό κ°μ μ‘°ν©μ λ¬Έμ λ€ (Combinatorial Problems) κ³Ό μ°κ΄λ¨μμ κ²μμ μ‘°ν©μ λ¬Έμ μ λν brute-force λ°©λ²μ΄λ€
μμ΄ (Permutation)
μλ‘ λ€λ₯Έ κ²λ€ μ€ λͺ κ°λ₯Ό λ½μμ ν μ€λ‘ λμ΄νλ κ²
μλ‘ λ€λ₯Έ nκ° μ€ rκ°λ₯Ό ννλ μμ΄μ nPr
λ€μκ³Ό κ°μ μμ΄ μ±λ¦½ν¨
nPr = n x (n-1) x (n-2) x ... x (n-r+1)
nPn = n! μ΄λΌκ³ νκΈ°νλ©°,
Factorial
μ΄λΌ λΆλ¦n! = n x (n-1) x (n-2) x ... 2x1
μμ΄μ μμνλ μμλ€μ μ§ν©μμ μ΅μ μ λ°©λ²μ μ°Ύλ κ²κ³Ό κ΄λ ¨ μμ
ex) TSP (Traveling Salesman Problem)
N κ°μ μμλ€μ λν΄μ n!κ°μ μμ΄λ€μ΄ μ‘΄μ¬
n >12 μΈ κ²½μ°, μκ° λ³΅μ‘λ νλ°!!! (μ§μμΉμΌλ‘ μ¬λΌκ°κΈ° λλ¬Έμ...)
1. μ¬κ· νΈμΆμ ν΅ν μμ΄ μμ± - κ΅νμ ν΅ν΄ μμ±
Subsets (λΆλΆ μ§ν©)
μ§ν©μ ν¬ν¨λ μμλ€μ μ ννλ κ²
λ€μμ μ€μ μκ³ λ¦¬μ¦λ€μ΄ μμλ€μ κ·Έλ£Ήμμ μ΅μ μ λΆλΆ μ§ν©μ μ°Ύλ κ²μ
ex) λ°°λ μ§μΈκΈ° (knapsack)
Nκ°μ μμλ₯Ό ν¬ν¨ν μ§ν©
μκΈ° μμ κ³Ό 곡μ§ν© ν¬ν¨ν λͺ¨λ λ©± μ§ν©(power set)μ κ°μλ 2^nκ°
μμμ μκ° μ¦κ°νλ©΄ λΆλΆμ§ν©μ κ°μλ μ§μμ μΌλ‘ μ¦κ°
1. λ¨μνκ² λͺ¨λ λΆλΆ μ§ν© μμ±νλ λ°©λ²
4κ° μμλ₯Ό ν¬ν¨ν μ§ν©μ λν
power set
ꡬνκΈ°
2. Binary Counting
μμ μμ ν΄λΉνλ Nκ°μ λΉνΈμ΄μ μ΄μ©
nλ²μ§Έ λΉνΈκ°μ΄ 1μ΄λ©΄ nλ²μ§Έ μμκ° ν¬ν¨λμμμ μλ―Έ
Combination (μ‘°ν©)
μλ‘ λ€λ₯Έ nκ°μ μμ μ€ rκ°λ₯Ό μμ μμ΄ κ³¨λΌλΈ κ²
μ‘°ν©μ μμ
nCr =
n-1 C r-1
+n-1 C r
nC0 = 1
Last updated