๐Ÿค– Computer Science/Algorithm

์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ $$T(n), O, \Theta, \Omega$$ ๋“ฑ์˜ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ‘œ๊ธฐ๋ฒ•์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด๋‚˜ ๊ณต๊ฐ„ ์š”๊ตฌ์‚ฌํ•ญ์˜ ์ƒํ•œ, ํ•˜ํ•œ, ๋˜๋Š” ์ •ํ™•ํ•œ ๊ฒฝ๊ณ„๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ํ‘œ๊ธฐ๋ฒ•์„ ๋น… ์˜ค ํ‘œ๊ธฐ๋ฒ•์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, ๊ฐ๊ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค. Big O ํ‘œ๊ธฐ๋ฒ• (O): ํ•จ์ˆ˜์˜ ์ƒํ•œ์„ ์„ค๋ช…ํ•œ๋‹ค. ( O(g(n)) )์€ ํ•จ์ˆ˜ ( f(n) )์ด ( c \times g(n) )์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Š” ์ฃผ๋กœ ์ตœ์•…์˜ ๊ฒฝ์šฐ ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. Theta ํ‘œ๊ธฐ๋ฒ• ((\Theta)): ํ•จ์ˆ˜์˜ ์ •ํ™•ํ•œ ์„ฑ์žฅ๋ฅ ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ( \Theta(g(n)) )์€ ( f(n) )์ด ( c_1 \times g(n) )๊ณผ ( c_2 \times g(..
๊ฒน์น˜๋Š” ํ•˜์œ„ ๋ฌธ์ œ(Subproblem)๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ด ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ์ตœ์ ํ™” ๋ฌธ์ œ๋“ค ํŠน์ง•1. ์ž‘์€ ํ•˜์œ„๋ฌธ์ œ๋“ค์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋ฉฐ, ์ด๋“ค์˜ ํ•ด๊ฒฐ ๊ฒฐ๊ณผ๊ฐ€ ์žฌํ™œ์šฉ๋  ์ˆ˜ ์žˆ์„ ๋•Œ 2. Optimal Substructure(์ตœ์ ๋ถ€๋ถ„๊ตฌ์กฐ)์„ ๊ฐ–์ถ˜ ๋ฌธ์ œ. ํฐ ๋ฌธ์ œ์˜ ์ตœ์ ํ•ด๊ฐ€ ์ž‘์€ ๋ฌธ์ œ์˜ ์ตœ์ ํ•ด๋ฅผ ํ†ตํ•ด ๊ตฌํ•  ์ˆ˜ ์žˆ์„ ๋•Œ 3. ์ค‘๋ณต๋œ ๊ณ„์‚ฐ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ. ๊ฐ™์€ ํ•˜์œ„ ๋ฌธ์ œ๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋•Œ ํ•˜์œ„๋ฌธ์ œ๊ฐ€ ๋…๋ฆฝ์ , ์ค„์—ฌ๊ฐ€๋ฉด์„œ ํ•ด๊ฒฐ -> Divide & Conquer ํ•˜์œ„๋ฌธ์ œ๊ฐ€ ์ค‘์ฒฉ๋จ, ๋ฐ˜๋ณตํ•ด์•ผ ํ•จ -> Dynamic Programming DP๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ฌธ์ œ๋“คlongest common subsequenceKnapsack problemRod cutting problemshortest ..
ascending order๋กœ ์ •๋ ฌํ•˜๋Š” qseudocode๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (index๊ฐ€ 1๋ถ€ํ„ฐ n๊นŒ์ง€๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ) INSERTION-SORT(A, n) -> A[1 .. n] for j
DFS/BFS ๋ฅผ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ๊ธฐ์ดˆ : ์Šคํƒ, ํ, ์žฌ๊ท€ํ•จ์ˆ˜ํƒ์ƒ‰ : ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •๋Œ€ํ‘œ์ ์ธ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ DFS, BFS - ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ์ธ ์Šคํƒ๊ณผ ํ์—๋Œ€ํ•œ ์ดํ•ด ํ•„์š”  ์Šคํƒ์Šคํƒ : ์„ ์ž…ํ›„์ถœํŒŒ์ด์ฌ์—์„œ ์Šคํƒ์„ ์ด์šฉํ•  ๋•Œ๋Š” ๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.๊ธฐ๋ณธ ๋ฆฌ์ŠคํŠธ์—์„œ append()์™€ pop() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.append() ๋ฉ”์„œ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์žฅ ๋’ค์ชฝ์— ์‚ฝ์ž…, pop() ๋ฉ”์„œ๋“œ๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์žฅ ๋’ค์ชฝ์—์„œ ๋ฐ์ดํ„ฐ ๊บผ๋‚ด๊ธฐ ๋•Œ๋ฌธ  ํํ : ์„ ์ž…์„ ์ถœcollections ๋ชจ๋“ˆ์—์„œ ์ œ๊ณตํ•˜๋Š” deque ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•˜์ž.deque๋Š” ์Šคํƒ๊ณผ ํ์˜ ์žฅ์ ์„ ๋ชจ๋‘ ์ฑ„ํƒํ•œ ๊ฒƒ์ธ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ๋นผ๋Š” ์†๋„๊ฐ€ ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•์— ๋น„ํ•ด ํšจ์œจ์ ์ด๋ฉฐque..
yesolz
'๐Ÿค– Computer Science/Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก