ํฌ์ŠคํŠธ

๐ŸŒ“ ๋ถ„ํ• ์ •๋ณต

@ N~์ฐจ์‹œ
@ N+1์ฐจ์‹œ
@ Chapter 3

@ ์žฌ๊ท€

๐Ÿ’ซ ์ •์˜


  1. ๊ธฐ๋ณธ ๋‹จ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ด์–ด์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฌธ์ œ๊ฐ€ ๊ธฐ๋ณธ ๋‹จ๊ณ„๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ์ž‘๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.


๐Ÿซง


@ 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 ์•„๋‹˜)

์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.