์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Flex
- CSS
- Gatsby
- position
- ์๋ฐ์คํฌ๋ฆฝํธ
- fetch API
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- ๋ธ๋ก๊ทธ
- ์ฝ๋ฉํ ์คํธ
- ๋ฐ๋ธ์ฝ์ค
- Props
- history api
- REACT
- float
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก ํธ์๋
- useRef
- useEffect
- Today
- Total
๋ชฉ๋ก๐ Language & CS knowledge/Algorithm & Data structure (21)
Daehyunii's Dev-blog

5.1 ์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ฐ์ ์ฌ๊ท๋ผ๋๊ฒ์ด ๋ฌด์์ผ๊น? ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๊ณต๋ถํ๋ฏ์ด ์ฌ๊ท๋ ์๊ธฐ ์์ ์ ํธ์ถํ๋ ํจ์๋ฅผ ์๋ฏธํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ฌ๊ท๋ฅผ ์ ์์์ผ ํ ๊น? ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ๋ชจ๋ ๊ณณ์์ ํ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ฐ์ ์ฌ๊ท๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ '์คํ์ปจํ ์คํธ ์คํ'์ ์ดํดํ ํ์๊ฐ ์๋ค. ์คํ ์ปจํ ์คํธ๋ ์ด๋ฏธ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ณต๋ถํ์ ์ด ์๋ค. 2022.07.20 - [์ธ์ด ๊ณต๋ถ ๋ฐ ์ ๋ฆฌ/์๋ฐ์คํฌ๋ฆฝํธ[๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ]] - 23์ฅ ์คํ ์ปจํ ์คํธ 23์ฅ ์คํ ์ปจํ ์คํธ ์คํ ์ปจํ ์คํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ ํต์ฌ ๊ฐ๋ ์ด๋ค. ์ด ๊ฐ๋ ์ ๋ช ํํ๊ฒ ์ดํดํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ค์ฝํ ๊ธฐ๋ฐ์ผ๋ก ์๋ณ์์ ์๋ณ์์ ๋ฐ์ธ๋ฉ๋ ๊ฐ์ ๊ด๋ฆฌํ๋ ๋ฐฉ์๊ณผ ํธ pinetree93.tistory.com..

4.1 ๋ํ์ ์ธ ํจํด๋ค ๋ฌธ์ ํด๊ฒฐ ์ ๊ทผ๋ฒ์ ์ด์ด์ง๋ ๋ด์ฉ์ผ๋ก ์ด์ ๋ ๋๋๋ก ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ํจํด์ ์ดํด๋ณด๋ ค ํ๋ค. ๊ต์ฅํ ๋ง์ ํจํด๋ค์ด ์กด์ฌํ์ง๋ง ๋ํ์ ์ธ ํจํด๋ค๋ง ์ดํด๋ณด์.(๊ณต์์ ์ธ ์ด๋ฆ์ด ๋ถ์ ํจํด๋ค๋ ์์ง๋ง, ๊ทธ๋ ์ง ์์ ํจํด๋ค๋ ์กด์ฌํ๋ค.) 1. Frequency Counter ๋น๋์ ์ธ๊ธฐ ํจํด (๊ฐ์ฌ๋์ด ์ง์ ๋ถ์ธ ์ด๋ฆ์ด๋ค) 2. Multiple Pointers ๋ค์ค ํฌ์ธํฐ ํจํด (๊ฐ์ฌ๋์ด ์ง์ ๋ถ์ธ ์ด๋ฆ์ด๋ค) 3. Sliding Window ๊ธฐ์ค์ ๊ฐ ์ด๋ ๋ฐฐ์ด ํจํด 4. Divide and Conquer ๋ถํ ๊ณผ ์ ๋ณต ํจํด (๊ณต์์ ์ธ ์ด๋ฆ์ด๋ค. ์ค์ ์์ฃผ ์ฌ์ฉ๋จ) 5. Greedy Algorithms ํ์ ์๊ณ ๋ฆฌ์ฆ ํจํด (์ค์ ์์ฃผ ์ฌ์ฉ๋จ) ์ด ์ฒ๋ผ ๋ฌธ์ ํด๊ฒฐ์ ์ ์ฉ..

3.1 ์๊ณ ๋ฆฌ์ฆ ์ ์ ์๊ณ ๋ฆฌ์ฆ์ด๋? ํน์ ์์ ์ ๋ฌ์ฑํ๊ธฐ ์ํ ๊ณผ์ ์ด๋ ์ผ๋ จ์ ๋จ๊ณ๋ฅผ ์๋ฏธํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๊ทธ ๋ฐฉ๋ฒ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์ ์์์ผ ํ ๊น? ๋ฐ๋ก ์ ์๋๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๋ง๋ จํ ์ ์๋๋ก ๊ฒฐ์ ํ๊ธฐ ์ํด์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฌธ์ ๋ฅผ ์ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผ ํ ๊น?? ๋ฌธ์ ๋ฅผ ์ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋ชจ๋ ์ฌ๋์ด ์ง๊ด์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ ์์ธ์ ํ์ ํ๊ณ , ๊ฐ์ฅ ์ข์ ํด๊ฒฐ์ฑ ์ ์๊ฐํด ๋ผ ์ ์๋ค๋ฉด ๊ฐ์ฅ ์ข์๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฐ ์ฌ๋์ด ์๋ค๋ฉด ์ ๋ง ๋ถ๋ฌ์ธ ๊ฒ์ด๋ค. ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก๋ ์ฝ์ง ์๊ธฐ ๋๋ฌธ์ ์ผ๋ จ์ ์ ๋ต์ ๊ตฌ์ฌํ์ฌ ์ ๊ทผํ๋๊ฒ์ด ์ข์ ๋ฐฉ๋ฒ์ผ ์ ์๋ค. ๋ค์์ ๋ฌธ์ ๋ฅผ ์ ํด๊ฒฐํด ๋๊ฐ๊ธฐ ์ํ ์ ๋ต์ ์ ๊ทผ ๋ฐฉ๋ฒ์ด๋ค. 1๋จ๊ณ : ๋ฌธ์ ์ ์ดํด 2๋จ๊ณ : ๊ตฌ์ฒด์ ์์ ์ฐพ๊ธฐ 3๋จ๊ณ..

์ด๋ฒ ๊ฐ์์์๋ ๋น ์ค์ ์์ ์์ ๊ฐ์ฒด์ ๋ฐฐ์ด์ด ์ด๋ป๊ฒ ์๋๋๋์ง, ์ ๋ฐฐ์ด์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋๊ฒ์ด ์์ข์ ๊ฒ์ธ์ง, ๋ ๋ฉ์๋๋ค์ ๋น ์ค์ ๊ด์ ์์ ์ด๋ป๊ฒ ํํ๋๋์ง ํ์ธํด๋ณด์๋ค. 2.1 ๊ฐ์ฒด์ ๋น ์ค let instructor = { firstName : "mark", inInstructor : true, favoriteNumbers : [1,2,3,4,5] }; ์ฐ์ ๊ฐ์ฒด๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ด ์์ ํ์๊ฐ ์์๋, ๋น ๋ฅธ ์ ๊ทผ, ์ ๋ ฅ ๊ทธ๋ฆฌ๊ณ ์ ๊ฑฐ๋ฅผ ์ํ ๋ ์ข๋ค. ํ๋ง๋๋ก ์ ๋ ฌ๋์ด ์์ง๋ ์์ง๋ง ๊ทธ ์ธ์ ๊ฒ๋ค์ ์ฒ๋ฆฌ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค. ์ด๋ฅผ ๋น ์ค ํ๊ธฐ๋ฒ์ ๊ด์ ์์๋ ์ ๋ ฅ,์ ๊ฑฐ,์ ๊ทผ์ O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. ์ฆ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๋ ์ด๋ค ์ ๋ณด๋ ์์ ์๊ฐ์์ ์ ์ฅํ ์ ์๊ณ , ์ํ๋ ๋ด์ฉ์ ์..

1.1 ๋น ์ค ํ๊ธฐ๋ฒ์ ํ์์ฑ ๋์ผํ ๋์์ ๊ตฌํํ๊ธฐ ์ํ ์ฝ๋๋ ์๋ง์ ๋ฐฉ๋ฒ์ผ๋ก ์์ฑ์ด ๊ฐ๋ฅํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด ๋ง์ ์ฝ๋๋ค ์ค์์ ์ํฉ์ ์๋ง๋ ์ฑ๋ฅ์ด ๊ฐ์ฅ ์ข์ ์ฝ๋๋ ๋ฌด์์ธ์ง๋ฅผ ํ์ธํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ๋น ์ค ํ๊ธฐ๋ฒ์ด๋ค. ๋์ผํ ๋์์ ๊ตฌํํ๊ธฐ ์ํ ์ฌ๋ฌ ์ฝ๋ ์์ฑ ๋ฐฉ๋ฒ์ ๊ทธ ์์ฑ ๋ฐฉ๋ฒ๋ง๋ค ์ฅ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค. ํ์ง๋ง ๊ฐ๋ฐ์๋ ์ด๋ฅผ ๋น๊ตํด๋ณด๊ณ ํ์ธํ๋๊ฒ์ด ์ค์ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ฒ๊ทธ์ ์ฝ๋๋ฅผ ๋๋ฆฌ๊ฒ ๋ง๋๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์ดํดํ๋๊ฒ๋ ๊ต์ฅํ ์ค์ํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋น ์ค ํ๊ธฐ๋ฒ์ด ํ์ํ๋ค. 1.2 ์ฝ๋ ์๊ฐ ์ฌ๊ธฐ ์ฝ๋๋ฅผ ์์ฑํจ์ ์์ด์ ๋ ์ข์ ์ฝ๋๋ฅผ ํ๋จํ๋ ๊ธฐ์ค์ ๋ฌด์์ผ๊น? ์ฒ๋ฆฌ ์๋๊ฐ ์ผ๋ง๋ ๋น ๋ฅธ์ง? ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ผ๋ง๋ ์ฌ์ฉ๋๊ณ ์๋์ง? ์๋๋ฉด ๊ฐ๋ ์ฑ์ด ์ข์ ์ข์ ์ฝ๋? ์ด ์ฒ๋ผ ์ข์ ์ฝ๋๋ฅผ ํ๊ฐํ๋ ๊ธฐ์ค์..