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
Was this helpful?