07 28 - nolsigan/nolsigan.github.io GitHub Wiki
Algorithm
๋ถํ ์ ๋ณต
๊ฐ์ฅ ์ ๋ช ํ ์๊ณ ๋ฆฌ์ฆ ๋์์ธ ํจ๋ฌ๋ค์, ํ ๋ง๋๋ก ์ค๋ช ํ๋ฉด ๊ฐ๊ฐ ๊ฒฉํ!
์ด 3๋จ๊ณ๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ ์ํ ์ ์๋ค.
- ๋ฌธ์ ๋ฅผ ๋ ์์ ๋ฌธ์ ๋ก ๋ถํ ํ๋ ๊ณผ์ (divide)
- ๊ฐ ๋ฌธ์ ์ ๋ํด ๊ตฌํ ๋ต์ ์๋ ๋ฌธ์ ์ ๋ํ ๋ต์ผ๋ก ๋ณํฉ (merge)
- ๋์ด์ ๋ต์ ๋ถํ ํ์ง ์๊ณ ๊ณง์ฅ ํ ์ ์๋ ๋งค์ฐ ์์ ๋ฌธ์ (base case)
์๊ฐ๋ณต์ก๋๋ divide, merge์ ์ง๋ฐฐ์ ์ด๋ค.
ex ) merge sort, quick sort, ์นด๋ผ์ธ ๋ฐ์ ๋น ๋ฅธ ๊ณฑ์ ์๊ณ ๋ฆฌ์ฆ
๋ฌธ์ ํ์ด ํ
string์ด๋ ๋ฐฐ์ด์ ๋ค๋ฃจ๋ฉฐ ์ฌ๊ท ํธ์ถ์ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค ํ ๋, ํจ์์ ํ์ํ ๋ฒ์๋งํผ ์๋ผ ์ธ์๋ก ๋ฃ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง
๊ทธ๋ณด๋ค iterator๋ฅผ ์ฌ์ฉํด ํ์ํ ๋งํผ ๊ฐ์ ธ๋ค ์ฐ๋ฉด ๊น๋ํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
Thread๋ process ๊ธฐ๋ฐ concurrency issue๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฌ๊ท ํธ์ถ์ ํ๋๋ผ๋ iterator๋ ํ๋์ฉ ์ ์งํ๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํ์.