๐ ๋ถํ ์ ๋ณต
@ N~์ฐจ์
@ N+1์ฐจ์
@ Chapter 3
@ ์ฌ๊ท
๐ซ ์ ์
- ๊ธฐ๋ณธ ๋จ๊ณ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ด ๋ถ๋ถ์ ๊ฐ๋ฅํ ํ ๊ฐ๋จํ ๋ฌธ์ ์ด์ด์ผ๋ง ํฉ๋๋ค.
- ๋ฌธ์ ๊ฐ ๊ธฐ๋ณธ ๋จ๊ณ๊ฐ ๋ ๋๊น์ง ๋๋๊ฑฐ๋ ์๊ฒ ๋ง๋ญ๋๋ค.
๐ซง
@ Deduce ์ฐ์ญ : ์ถ๋ก
@ Induce ๊ท๋ฉ : ์ ๋, ๋๋ ค์ ๋งํจ โ ์ฌ๋ก โ ํ๋ฅ (<= 100%)
@ Induction ์ธ๋์
: ์๊ธฐ์ฅ ์ ๋
๋ฅผ ํตํด ์ด ์์ฑ
@ ์ํ์ ๊ท๋ฉ๋ฒ : 100%
๋ถํ ์ ๋ณต
REVIEW
Iteration ๋ฐ๋ณต
N๋ฒ or ์กฐ๊ฑด ๋ง์กฑ๊น์ง ๋ฐ๋ณต
Recursion ์ํ
์ค์ค๋ก ํธ์ถํ์ฌ ๋ฌธ์ ํด๊ฒฐ
์ํ์ ํน์ง ๊ฐ๋ ๋ฌธ์ or ์ํ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ (Like Tree)๋ฅผ ๋ค๋ฃจ๋ ํ๋ก๊ทธ๋จ์ ๋ํด
๋ฐ์ ํ ์ฐ๊ด : Inductive Definition ์ํ์ ๊ท๋ฉ์ ์ ์, Recurrence Relation ์ ํ์
ํจ์ ํธ์ถ(์์คํ
์คํ)์ผ๋ก ์ธํด ๋ฐ๋ณต๋ณด๋ค ๋๋ฆผ
๋๋ถ๋ถ ๋์ผ ๊ธฐ๋ฅ์ ๋ฐ๋ณต ๊ตฌ์กฐ๋ก ๋ณํ ๊ฐ๋ฅ
๊ท๋ฉ์ ์ ์
ํฉํ ๋ฆฌ์ผ n!
๊ธฐ๋ณธ์กฐํญ f(0) = 1
๊ท๋ฉ์กฐํญ f(n) = n * f(n-1), n >= 1
์์ฐ์ n
๊ธฐ๋ณธ์กฐํญ n โ N
๊ท๋ฉ์กฐํญ (n-1) โ N ์ด๋ฉด, n โ N, n >= 2
ํผ๋ณด๋์น ์์ด fib(n)
0, n = 0
1, n = 1
fib(n-1) + fib(n-2), n >= 2
์ค๋ณต์์
I.E. f(3) ์ ์ค๋ณต ๊ณ์ฐ
f(5) = f(4) + f(3)
f(4) = f(3)
+ f(2)
์ํํธ์ถ
โ ํธ์ถ ์ ๋น์ฉ
โ ์ค๋ณต ์คํ
@ U ์ค๊ฐ๊ณ ์ฌ ์ถ์ : ํ ์ฑ์ฐ๊ธฐ (์ฃผ์ด์ง ๋ฌธ์ , ๋ฌธ์ ๋ฅผ ๋ถํ ์ ๋ณต์ผ๋ก ํ์์ ๋ ๋ถ๋ฌธ์ ์, ๋ถ๋ฌธ์ ํฌ๊ธฐ, ๋ถํ ์๊ฐ, ํฉ๋ณ ์๊ฐ, ํฉ๋ณ ์ ๋ ฌ)
๋ถํ ์ ๋ณต
Divide ๋ฌธ์ ๋ฅผ ๋ถ๋ฌธ์ ๋ก ๋ถํ (์ด๋๊น์ง ์ด๋ป๊ฒ ๋ช ๊ฐ๋ก ๋๋์ง๋ ์ฌ๋)
Conquer ์ฌ๊ท์ ์ผ๋ก ํด๊ฒฐ
Combine ๊ฒฐํฉ (ํ์ํ๋ค๋ฉด)
๋ง์คํฐ์ ๋ฆฌ
a = ๋ถ๋ฌธ์ ์, n/b = ๋ถ๋ฌธ์ ํฌ๊ธฐ, O(n^c) = ๋ถํ ๊ฒฐํฉ ์๊ฐ
a = b^c : T(n) = O(n^c log n)
a > b^c : T(n) = O(n^d), d = logb a
a < b^c : T(n) = O(n^c)
์ด์งํ์
๋๋๊ณ ํ๋๋ง ์, ๋ถ๋ฌธ์ 1๊ฐ = ๊ฒฐํฉ X
a = 1, b = 2, c = 0
a = b^c, T(n) = O(n^c log n) = O(log n)
์ํํธ์ถ ํธ๋ฆฌ์ ๋์ด log2n์ ๋น๋ก
์ต๋๊ฐ ์ฐพ๊ธฐ
Like ์ด์งํ์, ํ ๋๋จผํธ ๋ฐฉ์
๋ฐฐ์ด์ ๋ฐ์ผ๋ก ๋๋ ๊ฐ ์ต๋๊ฐ ๊ตฌํ๊ณ , ๋ ํฐ ๊ฐ์ ์ต๋๊ฐ์ผ๋ก
a = 2, b = 2, c = 0
a > b^c, T() = O(n^d), d = logba = 1 = ฮธ(n)
๊ฑฐ๋ญ์ ๊ณฑ power(x, n)
IN ์ํ ์๊ณ ๋ฆฌ๋ฌ
1, n = 0
x * power(x, n-1), n >= 1
IN ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ๋ฌ
1, n = 0
power(x^2, n/2), n != odd
x * power(x^2, (n-1)/2), n = odd
a = 1, b = 2, c = 0
a = b^c, T(n) = ฮธ(n^c log n) = ฮธ(log n)
๊ฐ์ ์ ๋ณต?
์ด์งํ์์ธ ๊ฑฐ๋ญ์ ๊ณฑ ์ฒ๋ผ ๋ถ๋ฌธ์ ๋ฅผ ๋ง๋ค๋ ํฌ๊ธฐ๋ฅผ ์ค์ด๋
TODO : ํฉ๋ณ ์ ๋ ฌ~
์ ์๋ฆฌ ์ ๋ ฌ์ธ๊ฐ ์๋๊ฐ?
โ ์ผ๋ฐ์ ๊ด์ ) O
โ ์๊ทผ์ง ๊ด์ ) ์ถ๊ฐ ๊ณต๊ฐ ์ฐ๋ ~๋ฅผ ์ฐ๋ฉด X
Stableํ๊ฐ ์ํ๊ฐ?
Stable ํ๋ค
@ U ์ค๊ฐ๊ณ ์ฌ ์ถ์ : ์ฃผ์ด์ง ๋ฐฐ์ด์ ํต ์ ๋ ฌ์ ์ ์ฉํ ์ดํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก ํต ์ ๋ ฌ์ด ์์ ์ ์ธ์ง ์ค๋ช
ํ์์ค. โ์์ ์ ์ด๋คโ ๋ผ๋ ๊ฒ์ด ์ด๋ค ์๋ฏธ์ธ์ง ์ค๋ช
ํ์์ค. ํต ์ ๋ ฌ์ ์ต์
/์ต์ ๋ณต์ก๋๋ฅผ ์ ์ผ์์ค.
-> ํต ์์ ์ ์ด์ง ์๋ค, ๋ ๋ฌด์จ ์๋ฏธ๋๋ฉด ๋๊ฐ์ ๊ฐ์ ์์๊ฐ ๊ทธ๋๋ก ์ ์ง๋์ง ์๋๋ค
TODO : ํต ์ ๋ ฌ~
์ต์ ์ ๊ฒฝ์ฐ ~
์ ์๋ฆฌ ์ ๋ ฌ์ธ๊ฐ ์๋๊ฐ?
โ ์ผ๋ฐ์ ๊ด์ ) ์ถ๊ฐ ๊ณต๊ฐ์ด ์์ผ๋๊น O (๋จ์ ๋ณ์ ์ ์ธ)
โ ์๊ทผ์ง ๊ด์ ) ์ฌ๊ท์ ์ผ๋ก ๋๋ฆฌ๋ฉด ์์คํ
์คํ์ ์์ด๋๊น.. X
Stableํ๊ฐ ์ํ๊ฐ?
Stable ํ์ง ์๋ค
THRESHOLD - ์๊ณ๊ฐ
๋ฎ์ถ๋ฉด ๋๋ ์ ์์ ๋/ํ๊ธฐ ์ฌ์ธ ๋๊น์ง ๋๋๊ณ ํด๊ฒฐํ๊ฒ ๋ค (์ค์ ๋ก๋ ์๋ฌด๊ฒ๋ ์ํจ)
๋ถํ์ํ ํจ์ ํธ์ถ์ ํผํ๊ธฐ ์ํด ํจ์ ํธ์ถ ์ ์ ์ ๊ฒ
โ ์กฐ๊ฑด๋ฌธ์ด ๋ง์์ ธ์ ์ฝ๋๊ฐ ์ง์ ๋ถํด์ง
๋ํ๋ฉด
์ด๋ ์ ๋ ํฌ๊ธฐ์ ๋ฌธ์ ๋ผ๋ ํ ์ ์๋ ๊ฑฐ๋ ํ๊ฒ ๋ค
โ ์๋ฌด ์ผ๋ ์ํ๋ ์ํํธ์ถ ์ค๋ฒํค๋ ํํผ, ํจ์จ์ฑ ์ฆ๊ฐ
ํจ์จ์ฑ ๊ทน๋ํํ๊ธฐ ์ํด ํ์ด๋ธ๋ฆฌ๋ ์๊ณ ๋ฆฌ๋ฌ
โ ์์ ๊ฐ์์์ ๋น ๋ฆ : ํต + ์ฝ์
โ ๋ง์ ๊ฐ์์์ ๋น ๋ฆ : Steam Sort? ํฉ๋ณ + ์ฝ์
, ๋๋ถ๋ถ์ Python/Java ์๊ณ ๋ฆฌ๋ฌ
โ C๋ ํต
@ U ์ค๊ฐ๊ณ ์ฌ ์ถ์ : ํธ๋ก๋ฏธ๋ ธ
ํธ๋ก๋ฏธ๋ ธ ํ์ผ๋ก ์ฒด์คํ ์ฑ์ฐ๊ธฐ
ํ์ผ ํ ๊ฐ๋ฅผ ๋ชจ๋
ธ๋ฏธ๋
ธ (Like ๋ชจ๋
ธ๋ ์ผ)
ํ์ผ ๋ ๊ฐ๋ฅผ ๋๋ฏธ๋
ธ
ํ์ผ ์ธ ๊ฐ๋ฅผ ํธ๋ก๋ฏธ๋
ธ
ํ์ผ ๋ค ๊ฐ๋ฅผ ํ
ํธ๋ก๋ฏธ๋
ธ (Like ํ
ํธ๋ฆฌ์ค)
๊ตฌ๋ฉ์ด ํ๋ ์๋ 2^k * 2^k ์ฒด์คํ์,
L ๋ชจ์์ ํธ๋ก๋ฏธ๋
ธ Tromino ํ์ผ๋ก ์ฑ์ธ ์ ์๋๊ฐ?
์ํ์ ๊ท๋ฉ๋ฒ
โ ๋๋ฏธ๋
ธ๋ฅผ ์ฐ๋ฌ๋จ๋ฆฌ๋ ๊ฒ
โ ์์ ๊ฒ์ผ๋ก ์์ํด์ ํฐ ๋ฌธ์ ๋ฅผ
8 * 8 ๊ฐ๋ฅ,
์ผ๋ฐ์ ์ผ๋ก๋ ๊ฐ๋ฅํ ๊น?
๊ฐ์ฅ ์์ ํฌ๊ธฐ์ ๋ถ๋ฌธ์ ,
๊ตฌ๋ฉ์ด ํ๋ ์๋ 2^1 * 2^1 ์ฒด์คํ
์ด๋ ๊ณณ์ ๊ตฌ๋ฉ์ด ์๋๋ผ๋ ์ฒด์คํ ์ฑ์ฐ๊ธฐ ๊ฐ๋ฅ
๊ตฌ๋ฉ์ด ํ๋ ์๋ 2^k * 2^k ์ฒด์คํ์์,
๊ตฌ๋ฉ์ด ํ๋ ์๋ 2^1 * 2^1 ์ฒด์คํ์ผ๋ก,
๋ฌธ์ ๋ฅผ ์ค์ฌ๋๊ฐ ์ ์๋ค๋ฉด ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ๋ฌ์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅ
โ ํ์ 4๊ฐ์ ์ ์ฌ๊ฐํ์ผ๋ก ๋ถํ
โ ๊ตฌ๋ฉ์ด ํฌํจ๋ ์ ์ฌ๊ฐํ์ ์ ์ธํ๊ณ , ๋๋จธ์ง ์ ์ฌ๊ฐํ์ ์๋ ํธ๋ก๋ฏธ๋
ธ ๋ฐฐ์น
โ ์ต์ (2^1 * 2^1) ๊น์ง Loop
๋ถ๋ฌธ์ ์ : 4
๋ฌธ์ ์ ํฌ๊ธฐ : ์ ๋ฐ (์ฃผ์ 1/4 ์๋)