Tags
- Rp2๊ธฐ
- SSL
- merge sort
- ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- DATABASE
- OpenAPI
- @CreatedDate
- ํจ์คํธ์บ ํผ์คX์ผ๋์
- Java
- docker
- Unity
- spring ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- mysql
- MethodArgumentNotValidException
- SQL
- datagrip
- java error
- GIT
- Spring
- aligoapi
- C++
- Data Structure
- ์์คํ ์ํํธ์จ์ด
- ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
- node js
- spring์ผ๋ก https ์ ์ฉ
- MAKE US
- spring ์์ ๋ก๊ทธ์ธ
- RP 2๊ธฐ
- Quick Sort
YS's develop story
๋์ ๊ณํ๋ฒ๊ณผ ๋ถํ ์ ๋ณต ์ ๋ฆฌ ๋ณธ๋ฌธ
๐ฉ๐ป ๋์ ๊ณํ๋ฒ๊ณผ ๋ถํ ์ ๋ณต ์ ๋ฆฌ with Python
๐ฅ ๋์ ๊ณํ๋ฒ (Dynamic Programming)
๋์ ๊ณํ๋ฒ, Dynamic Programming์ด๋?
- ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ ํ, ํด๋น ๋ถ๋ถ ๋ฌธ์ ์ ํด๋ฅผ ํ์ฉํด์, ํฐ ๋ถ๋ถ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ต์ข ์ ์ผ๋ก ์ ์ฒด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฒ์ ๋๋ค.
- ์ํฅ์ ์ ๊ทผ๋ฒ์ผ๋ก ๊ฐ์ฅ ์ตํ์ ํด๋ต์ ๊ตฌํ ํ ์ด๋ฅผ ์ ์ฅํ๊ณ ,
ํด๋น ๊ฒฐ๊ด๊ฐ์ ์ด์ฉํด ์์ ๋ฌธ์ ๋ฅผ ํ์ด๊ฐ๋ ๋ฐฉ์์ ํ์ฉํฉ๋๋ค. - Memoization ๊ธฐ๋ฒ์ ํ์ฉํฉ๋๋ค.
Memoization (๋ฉ๋ชจ์ด์ ์ด์ ) : ํ๋ก๊ทธ๋จ ์คํ ์ ์ด์ ์ ๊ณ์ฐํ ๊ฐ์ ์ ์ฅํ๋ฉฐ,
๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํ์ฌ ์ ์ฒด ์คํ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๋ ๊ธฐ์ ์ ๋๋ค. - ๋ฌธ์ ๋ฅผ ์๊ฒ ์ชผ๊ฐค ๋, ๋ถ๋ถ ๋ฌธ์ ๋ ์ค๋ณต๋์ด ์ฌํ์ฉ๋ฉ๋๋ค.
๐ Memoization ํ์ฉ ์์
ํผ๋ณด๋์น์์ด์ ๊ณ์ฐํ๋ ์๊ณ ๋ฆฌ์ฆ
๐ Memoization์ ํ์ฉํ์ง ์์ ์ฝ๋
def fibo(value):
if value <= 1:
return value
else:
return fibo(value - 1) + fibo(value - 2)
์๊ฐ ๋ณต์ก๋๋ O(n^2)
๐ Memoization์ ํ์ฉํ ์ฝ๋
# Memoization
def fibo(value):
list = [0 for i in range(value + 1)]
list[0] = 0
list[1] = 1
for i in range(2, value + 1):
list[i] = list[i - 1] + list[i - 2]
return list[value]
์๊ฐ ๋ณต์ก๋๋ O(n)
Memoization์ ์ค๋ณต๋๋ ๊ณ์ฐ์ ๋ค์ ๊ณ์ฐํ์ง ์๊ธฐ ๋๋ฌธ์
๊ธฐ์กด์ ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅผ ์๋ฐ์ ์์ต๋๋ค.
๐ณ ๋ถํ ์ ๋ณต (Divide And Conquer)
๋ถํ ์ ๋ณต, Divide And Conquer ์ด๋?
- ๋ฌธ์ ๋ฅผ ๋๋ ์ ์์ ๋๊น์ง ๋๋์ด์ ๊ฐ๊ฐ ํ๋ฉด์ ๋ค์ ํฉ๋ณํ์ฌ ๋ฌธ์ ์ ๋ต์ ์ป๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
- ํ์์ ์ ๊ทผ๋ฒ์ผ๋ก ์์์ ํด๋ต์ ๊ตฌํ๊ธฐ ์ํด ์๋๋ก ๋ด๋ ค๊ฐ๋ฉด์ ํ์์ ํด๋ต์ ๊ตฌํ๋ ๋ฐฉ์์ ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ท ํจ์๋ก ๊ตฌํ๋ฉ๋๋ค.
- ๋ฌธ์ ๋ฅผ ์๊ฒ ์ชผ๊ฐค ๋, ๋ถ๋ถ ๋ฌธ์ ๋ ๋์ ๊ณํ๋ฒ๊ณผ ๋ฌ๋ฆฌ ์ค๋ณต๋์ง ์์ต๋๋ค.
์ฆ Memoization ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋ถํ ์ ๋ณต์ ๋ํ์ ์ธ ์์ : Quick Sort, Merge Sort
๐ช ๋์ ๊ณํ๋ฒ VS ๋ถํ ์ ๋ณต๋ฒ
๊ณตํต์
- ๋ฌธ์ ๋ฅผ ์๊ฒ ์ชผ๊ฐ์, ๊ฐ์ฅ ์์ ๋จ์๋ก ๋ถํ ํฉ๋๋ค.
์ฐจ์ด์
๋์ ๊ณํ๋ฒ
- ๋ถ๋ถ ๋ฌธ์ ๋ ์ค๋ณต๋์ด์, ์์ ๋ฌธ์ ํด๊ฒฐ ์์ ์ฌํ์ฉ๋ฉ๋๋ค.
- ๋ฌธ์ ๊ฐ ์ฌํ์ฉ๋๊ธฐ์ ์ฌํ์ฉ๋๋ ๋ฌธ์ ๋ฅผ ๊ณ์ฐํ์ง ์๊ธฐ ์ํด Memoization ๊ธฐ๋ฒ์ ํ์ฉํฉ๋๋ค.
๋ถํ ์ ๋ณต
- ๋ถ๋ถ ๋ฌธ์ ๋ ์ค๋ณต๋์ง ์์ต๋๋ค.
- Memoization ๊ธฐ๋ฒ์ ํ์ฉํ์ง ์์ต๋๋ค.
๋์ ๊ณํ๋ฒ, ๋ถํ ์ ๋ณต๋ฒ์
๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ Memoization๊ธฐ๋ฒ์ ํ์ฉํ๋ ํ์ฉํ์ง ์๋๋์ ๋๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํต ์ ๋ ฌ (Quick Sort) ์ ๋ฆฌ (0) | 2021.07.31 |
---|---|
๋ณํฉ ์ ๋ ฌ (Merge Sort) ์ ๋ฆฌ (0) | 2021.07.31 |
๋ฒ๋ธ ์ ๋ ฌ, ์ ํ ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ ์ ๋ฆฌ (0) | 2021.07.29 |
๋์ ๊ณํ๋ฒ๊ณผ ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ (0) | 2021.04.16 |
๋ถํ ์ ๋ณต๋ฒ - Merge Sort, Quick Sort (0) | 2021.04.15 |
Comments