์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค with ํ์ด์ฌ ๊ฐ๋ ์ ๋ฆฌ
๊ตฌํ
- ๋จธ๋ฆฟ์์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ค์ฝ๋๋ก ๋ฐ๊พธ๋ ๊ณผ์
- ํ์ด๋ฅผ ๋ ์ฌ๋ฆฌ๋ ๊ฒ์ ์ฝ์ง๋ง ์์ค์ฝ๋๋ก ์ฎ๊ธฐ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ์๋ฏธ
๊ตฌํํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์
- ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋จํ๋ฐ ์ฝ๋๊ฐ ์ง๋์น ๋งํผ ๊ธธ์ด์ง๋ ๋ฌธ์
- ํน์ ์์์ ์๋ฆฌ๊น์ง ์ถ๋ ฅํด์ผ ํ๋ ๋ฌธ์
- ๋ฌธ์์ด์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ก์ ๋ ํ ๋ฌธ์ ๋จ์๋ก ๋์ด์ ๋ฆฌ์คํธ์ ๋ฃ์ด์ผํ๋ (ํ์ฑ์ ํด์ผํ๋) ๋ฌธ์
- ์ฌ์ํ ์กฐ๊ฑด ์ค์ ์ด ๋ง์ ๋ฌธ์
์์ ํ์
- ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฃผ์ ์์ด ๋ค ๊ณ์ฐํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ
์๋ฎฌ๋ ์ด์
- ๋ฌธ์ ์์ ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ํ ๋จ๊ณ์ฉ ์ฐจ๋ก๋๋ก ์ง์ ์ํ
๊ตฌํ ๋ฌธ์ ์ ๊ทผ
- ์ฌ์ํ ์ ๋ ฅ ์กฐ๊ฑด ๋ฑ์ ๋ฌธ์ ์์ ๋ช ์ํด์ฃผ๋ฉฐ ๋ฌธ์ ์ ๊ธธ์ด๊ฐ ๊ฝค ๊ธด ํธ์
cf) ๋ฉ๋ชจ๋ฆฌ ,์๊ฐ ์ ํ ๊ณ ๋ ค ์ฌํญ
ํ์ด์ฌ์์ ๋ฆฌ์คํธ ํฌ๊ธฐ
๋ฐ์ดํฐ ๊ฐ์ (๋ฆฌ์คํธ ๊ธธ์ด) | ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ |
1,000 | ์ฝ 4KB |
1,000,000 | ์ฝ 4MB |
10,000,000 | ์ฝ 40MB |
- ํ์ด์ฌ์ 1์ด์ 2000๋ง ๋ฒ์ ์ฐ์ฐ์ ์ํํ๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ฌธ์ ๋ฅผ ํ๋ฉด ์๊ฐ์ ํ์ ์์ ์ ์
- (ex) ์๊ฐ์ ํ์ด 1์ด, ๋ฐ์ดํฐ ๊ฐ์๊ฐ 100๋ง๊ฐ -> ์๊ฐ๋ณต์ก๋ O(NlogN) ์ด๋ด์ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ ํ์ด์ผ ํจ (N=1,000,000์ผ ๋ NlogN์ 20,000,000 ์ด๊ธฐ ๋๋ฌธ)
- ์๊ฐ ์ ํ๊ณผ ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ํ์ธํ๊ณ ์ด๋ ์ ๋์ ์๊ฐ ๋ณต์ก๋์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์์ฑํด์ผ ํ ์ ์์ ๊ฒ์ธ์ง ์์ธกํ ์ ์์ด์ผ ํจ.