๊ฐ์ธ ๊ณต๋ถ ๊ณผ์ ์ ๊ธฐ๋กํฉ๋๋ค.
๐ What I Will Learn
- ์๋ฃ๊ตฌ์กฐ์ ํ์์ฑ์ ์ดํดํ๋ค
- ์๋ฃ๊ตฌ์กฐ์ ์ฑ๋ฅ ์ธก์ ๋ฐฉ๋ฒ์ ๋ํด ์ดํดํ๋ค
์๋ฃ๊ตฌ์กฐ์ ๊ฐ์
1๏ธโฃ ์๋ฃ๊ตฌ์กฐ์ ํ์์ฑ
- ์๋ฃ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ ์ฅํ๊ณ , ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํ๋ฌธ์ด๋ค.
- ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ๋ฉด ๋ถํ์ํ๊ฒ ๋ฉ๋ชจ๋ฆฌ์ ์ฑ๋ฅ์ ๋ญ๋นํ ์ฌ์ง๊ฐ ์๋ค.
์์) ํ๋ก๊ทธ๋จ ๋ด์์
INT
ํ ๋ฐ์ดํฐ๊ฐ 1์ต๊ฐ ๊ฐ๋ ์ฌ์ฉ๋๋ค๊ณ ๊ฐ์ ํ์. ์ด๋ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฐพ๋๋ก ํด์ฃผ๋ ์๋ฃ๊ตฌ์กฐ๋ ๋ฌด์์ธ๊ฐ?
โ๏ธ ๊ธฐ๋ณธ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ ํํ
- ์ ํ ๊ตฌ์กฐ
- ๋ฐฐ์ด
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ์คํ
- ํ
- ๋น์ ํ ๊ตฌ์กฐ
- ํธ๋ฆฌ(Tree)
- ๊ทธ๋ํ(Graph)
โ๏ธ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ ์๊ด ๊ด๊ณ?!
- ํจ์จ์ ์ธ ์๋ฃ๊ตฌ์กฐ ์ค๊ณ๋ฅผ ์ํด ์๊ณ ๋ฆฌ์ฆ ์ง์์ด ํ์
- ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์์ฑํ๊ธฐ ์ํด์๋ ๋ฌธ์ ์ํฉ์ ๋ง๋ ์ ์ ํ ์๋ฃ๊ตฌ์กฐ ์ฌ์ฉ ํ์
์ฆ, ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ผ๋ ค์ผ ๋ ์ ์๋ ๊ด๊ณ์ด๋ค!
โ๏ธ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ ์ธก์ ๋ฐฉ๋ฒ๋ก
- ์๊ฐ ๋ณต์ก๋(Time Complexity)๋?
- ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ๋๋ ์ฐ์ฐ ํ์๋ฅผ ์๋ฏธ
- ๊ณต๊ฐ ๋ณต์ก๋(Space Complexity)๋?
- ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์๋ฏธ
์ฆ, ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํ์ ๋, ์ผ๋ฐ์ ์ผ๋ก ์๊ฐ๊ณผ ๊ณต๊ฐ์ ๋ฐ๋น๋ก ๊ด๊ณ์ด๋ค
๐ ์ฐธ๊ณ ! ์๊ฐ ๋ณต์ก๋๋ฅผ ํํํ ๋๋ ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ๋ํ๋ด๋ Big-O ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
- ํ๋ก๊ทธ๋จ ์ฑ๋ฅ ์ธก์ ๋ฐฉ๋ฒ๋ก ์์ ์ด๋ฏธ์ง:
- ๋ณดํต ์ฐ์ฐ ํ์๊ฐ 10์ต์ ๋์ด๊ฐ๋ฉด 1์ด ์ด์์ ์๊ฐ์ด ์์๋๋ค.
๐ ์ฐธ๊ณ ! ๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ํ๊ธฐํ ๋๋ ์ผ๋ฐ์ ์ผ๋ก MB ๋จ์๋ก ํ๊ธฐํ๋ค
int a[1000]
: 4KBint a[1000000]
: 4MBint a[2000][2000]
: 16MB
โจ tl;dr
- ์๋ฃ๊ตฌ์กฐ์ ์ข
๋ฅ๋
์คํ
,ํ
,ํธ๋ฆฌ
๋ฑ์ด ์๋ค - ํ๋ก๊ทธ๋จ์ ์์ฑํ ๋๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ ํ ํ์ฉํ์ฌ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ๋ ธ๋ ค์ผ ํ๋ค