๋ฐ์ํ
๐ ์ค๋ ํ ์ผ
โ๏ธ Big-O ํ๊ธฐ๋ฒ & ์๋ฃ๊ตฌ์กฐ ์ฐ๊ด์ง์ด ์๊ฐํด๋ณด๊ธฐ
๋น ์ค(Big-O) ํ๊ธฐ๋ฒ์ ๊ทธ๋ฅ ์๊ณ ๋ฆฌ์ฆ์ด ๋์๊ฐ๋ ์ต์ ์ ์๊ฐ์ด๊ณ , ์์..์ง์.. ๋ฑ์ด ์๋ค๋ ๊ฒ, ๊ทธ๋ฆฌ๊ณ ๋๋ต ์ด๋ค ์ฝ๋๊ฐ ์ด๋์ ๋์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ตฌ๋ ์ ๋๋ก๋ง ์๊ณ ์์๋ค. ๋น ์ค ํ๊ธฐ๋ฒ์ ๋ํด ์ข ๋ ๊น๊ฒ ๋ค๋ฃจ๋ ์ธ์ ์ ๋ค์ผ๋ฉด์ ์๋ฃ๊ตฌ์กฐ์ ์ด๋ป๊ฒ ์ฐ๊ด๋๋์ง๋ ์์ธํ ๋ฐฐ์ ์ ์ ๋ธ๋ก๊น ํด๋๋ ๊ธ์ ์ถ๊ฐํ๊ณ , n^3์ ์๊ฐ๋ ๋น ์ค๋ก ํ์ํ๋ฉด n^2๋ก ์ทจ๊ธํ๋ค๋ ๊ฒ, ๊ทธ๋ฆฌ๊ณ ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ๋ฅผ ํ ๋ ์๊ฐ๋ณต์ก๋์ ๋ํ ์กฐ๊ฑด์ ๋ณด๊ณ ์ด๋ค ์๋ฃ๊ตฌ์กฐ๋ฅผ ์จ์ ํ ์ ์๋ ๋ฌธ์ ์ธ์ง ์ญ์ผ๋ก ํํธ๋ฅผ ์ป์ ์ ์๋ค๋ ๊ฒ๋ ์๊ฒ ๋์๋ค.
โ๏ธ Data Structure ๋ณต์ต
์ด๋ฒ ์ฃผ ๋์ ๋ฐฐ์ ๋ ์๋ฃ๊ตฌ์กฐ๋ค(์คํ, ํ, ์ฐ๊ฒฐ๋ฆฌ์คํธ ,ํด์ํ ์ด๋ธ, ๊ทธ๋ํ, ํธ๋ฆฌ, ์ด์งํ์ํธ๋ฆฌ)์ ํ๋ฒ์ฉ ์๊ฐํ๋ฉด์ ๊ทธ๋ ค๋ณด๊ณ , ๊ฐ ๊ตฌ์กฐ์ ๊ด๋ จ๋ ๋ฉ์๋๋ค์ ํ๋ฒ์ฉ ๋ ๋ณต์ตํ๋ฉฐ ์์ฑํด๋ดค๋ค. ํนํ ํด์ ํ ์ด๋ธ์ ๋ชจ๊ฐ์ฝ๋ฅผ ํ๋ฉด์ ๋ค๋ฅธ ๋ถ๋ค์ ์ด๋ค ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ์ง ๋ณผ ๊ธฐํ๊ฐ ์์๋๋ฐ, ๋ณด๋ฉด์ ์ ๋ง ๋ฐฉ๋ฒ์ด ๋ค์ํ๊ตฌ๋ ํ๊ณ ๋๊ผ๋ค. ๋๋ bucket์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ณ ํํ์ ๊ทธ๋ฅ ์์ฑ๊ณผ ๊ฐ๋ง ๋ฃ์ด์ค์ { key1:val1, key2:val2 } ์ด๋ฐ์์ผ๋ก ๊ตฌํํ๋๋ฐ, ์ด๋ค ๋ถ์ bucket์ ๋ฐฐ์ด๋ก ์ฌ์ฉํด [ {key1:val1}, {key2:val2} ] ์ด๋ฐ์์ผ๋ก ํ์๊ธฐ๋ ํ๊ณ , ์์ ๊ฐ์ฒด bucket ์์ ๊ฐ์ฒด tuple์ ๋ฃ์ด { { key1: val1 }, { key2: val2 } } ์ด๋ ๊ฒ ํ์ ๋ถ๋ ๊ณ์ จ๋ค. ํ์ด๋ถ๊ณผ ์ฒ์ ์ฝ๋๋ฅผ ์์ฑํ ๋๋ ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด๋ก ํํํ ์๋ ์๊ฒ ๋ค๊ณ ์ด์ผ๊ธฐ๋ง ํ๊ณ ํ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก๋ง ์๋ํด๋ดค์๋๋ฐ, ๋ค๋ค ์ฝ๋๋ฅผ ๊ณต์ ํด์ฃผ์ ๋์ ์ค์ ์ฝ๋๋ก ์์ฑํ์ ๋ ์ด๋ค ๋ชจ์ต์ธ์ง ๋ณผ ์ ์์ด ์ ์ตํ ์๊ฐ์ด์๋ค :)
๐ ๊ธฐ์ตํ ๊ฒ
โ๏ธ ๋ฐฐ์ด ๋ฉ์๋ ์๊ฐ๋ณต์ก๋
arr.filter : O(n)
arr.map : O(n)
arr.sort : O(n * log n)
โ๏ธ ์ธ์ ํ๋ ฌ
num * num ์ ์ฅ๊ณต๊ฐ ํ์
์ธ๋ฑ์ค๋ฅผ ์ง๊ด์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ 1) index๋ฅผ 1๋ถํฐ ์์ํด๋ฒ๋ฆฌ๊ฑฐ๋ 2) (num+1) * (num+1) ๋ฐฐ์ด๋ก ๊ด๋ฆฌํ ์ ์๋ค.
๐ ๋ ๊ณต๋ถํ ๊ฒ
โ๏ธ Github ์ค๋ฅ ํด๊ฒฐ
โ๏ธ ๊น์ด, ๋๋น ์ฐ์ ํ์
โ๏ธ heap(์ฐ์ ์์ํ)
โ๏ธ ์์ ํ์ ํธ๋ฆฌ ๊ธ ์ฝ์ด๋ณด๊ธฐ
๋ฐ์ํ
'Daily > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
210124_TIL (0) | 2021.01.25 |
---|---|
210123_TIL (0) | 2021.01.24 |
210121_TIL (์๋ฃ๊ตฌ์กฐ - ํธ๋ฆฌ, ์ด์ง๊ฒ์ํธ๋ฆฌ) (0) | 2021.01.22 |
210120_TIL (์๋ฃ๊ตฌ์กฐ - ํด์ํ ์ด๋ธ, ๊ทธ๋ํ) (0) | 2021.01.21 |
210119_TIL (์๋ฃ๊ตฌ์กฐ - ์คํ, ํ, ์ฐ๊ฒฐ๋ฆฌ์คํธ) (0) | 2021.01.20 |
๋๊ธ