Data Structure
๐งฉ [Data Structure] ์๋ฃ๊ตฌ์กฐ์ ์ฌ๊ท.
๐ Intro.
- โ๏ธ ์ฌ๊ท๋ โ๋ด ์์ ๋๋ฅผ ์ฐพ๋ ๊ฒโ์ด๋ค.
- โ๏ธ ์ฆ, ์ฑ๊ฒฉ์ ๊ฐ๊ณ ํฌ๊ธฐ๋ง ์์ ๋๋ฅผ ์ฐพ์ ํฐ ๋์ ์์ ๋๊ฐ ์ฐ๊ฒฐ๋ ๊ด๊ณ๋ฅผ ๋๋ฌ๋ด๋ ๊ฒ์ด๋ค.
โ
1๏ธโฃ ์ฌ๊ท์ ์์.
-
1. ํฉํ ๋ฆฌ์ผ(Factorial)
- โ๏ธ
n! = n x (n-1)!
์ด๋ค.
- โ๏ธ ํฌ๊ธฐ๊ฐ n์ธ ํฉํ ๋ฆฌ์ผ์ ํฌ๊ธฐ๊ฐ
n-1
์ธ ํฉํ ๋ฆฌ์ผ์ ํฌํจํ๊ณ ์๋ค.
- โ๏ธ 1๋ถํฐ n๊น์ง ๊ณฑํ๋ n!(n ํฉํ ๋ฆฌ์ผ)์
n! = 1 x 2 x 3 x ... x (n-1) x n
์ด๋ค.
- โ๏ธ ์ฌ๊ธฐ์ ๋งจ ๋์ ์๋ n๋ง ์ ์ธํ๋ฉด
1 x 2 x 3 x ... x (n-1)
์ธ๋ฐ ์ด๊ฒ์ (n-1)!
์ด๋ค.
- โ๏ธ n!์ ์ฌ๊ธฐ์ n๋ง ๋ ๊ณฑํ๋ฉด ๋๋ค.
- ์ฆ,
n! = n x (n-1)!
์ด๋ค.
โ
2๏ธโฃ ์ฌ๊ท์ ๊ตฌ์กฐ.
- โ๏ธ ์ด๋ค ๋ฌธ์ ๋ ํจ์ ๋ฑ์ด ์์ ๊ณผ ์ฑ๊ฒฉ์ด ๋๊ฐ์ง๋ง ํฌ๊ธฐ๊ฐ ๋ ์์ ๋ฌธ์ ๋ฅผ ํ๋ ์ด์ ํฌํจํ๊ณ ์์ ๋ ์ฌ๊ท์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ณ ์๋ค๊ณ ๋งํ๋ค.
- โ๏ธ ์๊ธฐ ์์ ์ ์ ์ํ๊ฑฐ๋ ์ฐธ์กฐํ๋ ๊ตฌ์กฐ๋ฅผ ์๋ฏธํ๋ค.
- โ๏ธ ์ฆ, ์ด๋ค ๊ฐ๋
, ํจ์, ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ด ์์ ์ ๋ฐ๋ณต์ ์ผ๋ก ํธ์ถํ๊ฑฐ๋ ํฌํจํ๋ ๋ฐฉ์์ ๋งํ๋ค.
โ
3๏ธโฃ ์ฌ๊ท์ ๊ตฌ์กฐ์ ๊ฐ๋
.
- โ๏ธ ์ ์ : ์๊ธฐ ์์ ์ ์ฐธ์กฐํ๊ฑฐ๋ ํฌํจํ๋ ๊ตฌ์กฐ.
- โ๏ธ ์ฃผ์ ํน์ง : ๋ฌธ์ ๋ฅผ ๋ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋๊ณ , ์ด ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ค ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํฉํ์ฌ ์ ์ฒด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํจ.
- โ๏ธ ์ข
๋ฃ ์กฐ๊ฑด(Base Case) : ๋ฌดํํ ๋ฐ๋ณต๋์ง ์๋๋ก ๋ฉ์ถ๋ ์กฐ๊ฑด์ด ๋ฐ๋์ ํ์ํจ.
โ
4๏ธโฃ ์ฌ๊ท์ ๊ตฌ์กฐ์ ์ฅ๋จ์ .
์ฅ์ |
๋จ์ |
๋ฌธ์ ๋ฅผ ๋
ผ๋ฆฌ์ ์ผ๋ก ํํํ๊ธฐ ์ฝ๋ค |
๋ฐ๋ณต ํธ์ถ๋ก ์ธํด ์คํ ์ค๋ฒํ๋ก์ฐ ์ํ์ด ์๋ค |
๋ณต์กํ ๋ฌธ์ ๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ํํํ ์ ์๋ค |
๋นํจ์จ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ๊ฐ๋ฅ์ฑ |
์ข
๋ฃ ์กฐ๊ฑด(Base Case)๋ง ๋ช
ํํ๋ฉด ๊ตฌํ์ด ์ฝ๋ค |
๋ฐ๋ณต๋ฌธ(Iterative)๋ณด๋ค ์๋๊ฐ ๋๋ฆด ์ ์๋ค |
โ
5๏ธโฃ ์ฌ๊ท์ ๊ตฌ์กฐ์ ํต์ฌ ์์.
- โ๏ธ Base Case (์ข
๋ฃ ์กฐ๊ฑด) : ๋ ์ด์ ์ฌ๊ท๊ฐ ์งํ๋์ง ์๋ ์กฐ๊ฑด์.
- โ๏ธ Recursive Case(์ฌ๊ท ์กฐ๊ฑด) : ๋ฌธ์ ๋ฅผ ๋ ์์ ๋จ์๋ก ๋๋๊ณ ์๊ธฐ ์์ ์ ํธ์ถํจ.
- โ๏ธ Stack ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ : ์ฌ๊ท ํธ์ถ๋ง๋ค ์๋ก์ด ์คํ ํ๋ ์์ด ์์ฑ๋จ.
โ
6๏ธโฃ ํ๋ก๊ทธ๋๋ฐ๊ณผ ์ฌ๊ท(Recursion)
- โ๏ธ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ํจ์ ๋ด๋ถ์์ ์์ ์ ํธ์ถํ๋ ์๊ธฐํธ์ถ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
- โ๏ธ ์์ด๋ก๋ recursion์ด๋ผ๊ณ ํ๊ณ ์ฐ๋ฆฌ๋ง๋ก ๋ณดํต ์ฌ๊ท๋ผ๊ณ ํ๋ค.
- โ๏ธ ์ด๋ฐ ์๋ฏธ์์, ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ด๊ณ ์ค์ฌ์ ์ฌ๊ณ ๋ฐฉ์์ ํ๋ จํ๋ ๋๊ตฌ์ด๊ธฐ๋ ํ๋ค.
โ
7๏ธโฃ ์ฌ๊ท์ ์๋ฃ๊ตฌ์กฐ ๊ทธ๋ฆฌ๊ณ ์๊ณ ๋ฆฌ์ฆ.
- โ๏ธ ์ฌ๊ท๋ฅผ ๋ชจ๋ฅด๊ณ ๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํ ์ ์๋ค.
- โ๏ธ ์ฌ๊ท๋ ์ปดํจํฐ ๊ณผํ ์ด๋ก ์ ๊ทผ๊ฐ์ ์ด๋ฃจ๋ ์ค์ ๊ฐ๋
.
- โ๏ธ ์ด๋ ต๊ฑฐ๋ ํน๋ณํ ์ฃผ์ ๊ฐ ์๋.
- โ๏ธ ์ปดํจํฐ ๊ณผํ์ ๊ณต๋ถํ๋ค ๋ณด๋ฉด ์ฌ๊ท๋ ๋์์์ด ๋ค์ํ ์ผ๊ตด๋ก ์ถํํจ.