#1 ์๊ณ ๋ฆฌ์ฆ
#1-1 ๊ฐ์
while(๋ฌธ์ ํด๊ฒฐ ์ ๋จ) {
ํ ์์ ๊ฐ์ฅ ์ข์ ๋ณด์ด๋ ์ ํ
}
๋ ์์ ์ด์ต๋ง ์ถ๊ตฌ(= Greedy(ํ์์ค๋ฌ์ด, ์์ฌ ๋ง์))ํ๋ ๋ฐฉ์์ ์ ๊ทผ๋ฒ์ ๋งํ๋ค. ์ ์ฝ๋์ ํ์์ ๊ฐ์ถ๊ธฐ๋ง ํ๋ฉด ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ ๋ถ๋ฅผ ์ ์๋ค. ์ฆ ๊ตฌ์ฒด์ฑ์ด ๋ฎ์, ์ถ์์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
#1-2 ์ต์ ํด(ๆ้ฉ่งฃ, optimal solution)
์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ๋ ์ต์์ ๋ต ๋๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ฏธํ๋ค.
#1-3 Yes/No ๋ฌธ์ ์ ์ต์ ํ ๋ฌธ์
์๋ฅผ ๋ค์ด, "์ด๋ค ์กฐ๊ฑด A๋ฅผ ๋ง์กฑํ๋ ์์ B๊ฐ ์งํฉ C์ ์กด์ฌํ๋๊ฐ?"๋ผ๊ณ ๋ฌป๋ ๋ฌธ์ ๋ฅผ Yes/No ๋ฌธ์ ๋ผ๊ณ ํ๋ค. ๋ฐ๋ฉด "์ด๋ค ์กฐ๊ฑด A๋ฅผ ๋ง์กฑํ๋ ์์ B์ ์ต์ใ์ต๋๊ฐ์ ์ผ๋ง์ธ๊ฐ?"๋ผ๊ณ ๋ฌป๋ ๋ฌธ์ ์ฆ, "์ต์ ํด๋ ์ผ๋ง์ธ๊ฐ?"๋ผ๊ณ ๋ฌป๋ ๋ฌธ์ ๋ ์ต์ ํ ๋ฌธ์ ๋ค. ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ํ ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์, ๋ก์ปฌ(์ง์ฝ์ ์ธ) ์ต์ ํด๊ฐ ๊ณง ๊ธ๋ก๋ฒ(์ ์ฒด) ์ต์ ํด๋ก ์ด์ด์ง๋ ์ต์ ํ ๋ฌธ์ ์์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ๋๋ค. (๋ฌผ๋ก ๋ฐ๋๋ก ๋ชจ๋ ์ต์ ํ ๋ฌธ์ ๊ฐ ๋ฐ๋์, ๋ก์ปฌ ์ต์ ํด๊ฐ ๊ธ๋ก๋ฒ ์ต์ ํด๋ก ์ด์ด์ง๋ ๊ฒ์ ์๋๋ค).
#2 ๋์ ํ๋ก๊ทธ๋๋ฐ๊ณผ์ ๋น๊ต
#2-1 ๋์ ํ๋ก๊ทธ๋๋ฐ
๋์ ํ๋ก๊ทธ๋๋ฐ (Dynamic Programming), ์ํฅ์(Bottom-up) ๋ฐ ํํฅ์(Top-down) ์ ๊ทผ
#1 ์๊ณ ๋ฆฌ์ฆ#1-1 ์ ์๋์ ํ๋ก๊ทธ๋๋ฐ์ ํ ์ค ์์ฝํ๋ฉด ์ค๋ณต์ ์ ๊ฑฐ๋ค. ์ ์ (static)์ด๋ผ๋ ๊ฐ๋ ๊ณผ ๋ฐ๋๋๋ ๊ฐ๋ ์ผ๋ก์, ๋์ (dynamic)์ด๋ผ๋ ๋จ์ด๊ฐ ์ด๋ฆ์ ๋ถ์๋ค. ํ์คํ static์ด ๋ถ์ ๋งํ ์์
kenel.tistory.com
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋์ ํ๋ก๊ทธ๋๋ฐ์ ์ ์ฌํ ์ ์ด ์กด์ฌํ๋ค.
#2-2 ๊ณตํต์ - ์ต์ ํด ํ์
๋ ๋ค ์ต์ ํ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
#2-3 ๊ณตํต์ - ๋ถ๋ถ ๋ฌธ์ ํด๊ฒฐ
๋์ ํ๋ก๊ทธ๋๋ฐ์ ์บ์ฑ์ ํตํด์, ์ค๋ณต ์์ ์ ์ ๊ฑฐ(ํ์์๋ ๋ถ๋ถ ์ ๊ฑฐ)ํ๋ค. ๋ด๊ฐ ํ์ํ ๋ถ๋ถ๋ง์ ํด๊ฒฐํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ํ ๋ถ๋ถ์ ์ด๊ณ ์ ์ง์ ์ธ ํด๊ฒฐ๋ก ์ ์ฒด ๋ฌธ์ ๋ฅผ ํ์ดํ๋ค.
#2-4 ์ฐจ์ด์ - ์ต์ ์ ์ ํ
๋ก์ปฌ(์ง์ฝ์ ์ธ) ์ต์ ํด๊ฐ ๊ณง ๊ธ๋ก๋ฒ(์ ์ฒด) ์ต์ ํด๋ก ์ด์ด์ ธ์ผ๋ง ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ์ ์๋ค. ๋ฐ๋ฉด, ๋์ ํ๋ก๊ทธ๋๋ฐ์ ๋ก์ปฌ์์์ ์ต์ ์ ์ ํ(๊ฐ์ฅ ์ข์๋ณด์ด๋ ์ ํ)์ด ๊ธ๋ก๋ฒ ์ต์ ํด๋ก ์ด์ด์ง๋ค๋ ๊ฒ์ ํ๋ตํ ์ ์์ ๋ ์ฌ์ฉํ๋ค.
#2-5 ์ฐจ์ด์ - ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
๋์ ํ๋ก๊ทธ๋๋ฐ์ ์ค๋ณต ์์ ์ ๊ฑฐ๋ฅผ ์ํ ์บ์ฑ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ค.
#2-6 ์ฐจ์ด์ - ์๊ฐ ๋ณต์ก๋
๋์ ํ๋ก๊ทธ๋๋ฐ์ ๋ชฉ์ ์์ฒด๊ฐ ์ค๋ณต ์์ ์ ๊ฑฐ์์๋ ์๊ฐ ๋ณต์ก๋๊ฐ ๋์ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ฐ๋ฉด, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ฐ์ ์ผ๋ก O(n) ๋๋ O(nlogn) ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ์ด๋ฅผ ๊ฐ์ํด ์ฝ๋ ํ ์คํธ์์ ์ฝ๊ฐ์ ํธ๋ฒ์ ์ฌ์ฉํ ์๋ ์๋ค. ๋์ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ํ๋ฆด ๊ฒ ๊ฐ์ ๋ฌธ์ ์ธ๋ฐ ํด๋น ๋ฐฉ๋ฒ์ ์๊ฐ ๋ณต์ก๋๊ฐ O(n2)๋ผ๋ฉด, ํน์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๋ฆฌ๋ ๋ฌธ์ ๋ ์๋๊ฐํ๊ณ ์ ๊ทผ๋ฒ์ ์ฌ๊ณ ํด๋ณด๋ ๊ฒ์ด๋ค.
#3 ์์ฝ
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ทผ์์์ ์์ฌ์ด ์ต๊ณ ์ ๊ฒฐ๊ณผ๋ก ์ด์ด์ง๋ ๊ตฌ์กฐ์์, ๋๋ ๊ทธ ๊ตฌ์กฐ๋ฅผ ์ธ์์ ์ผ๋ก ๋ง๋ค์ด ๋ผ ์ ์์ ๋ ์ฌ์ฉํ๋ค.
#4 ์ด ๊ฐ๋ ์ด ์ฌ์ฉ๋ ๊ธ
[๋ฐฑ์ค] 1931 (ํ์์ค ๋ฐฐ์ )
#1 ์๊ณ ๋ฆฌ์ฆ#1-1 ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆhttps://kenel.tistory.com/243123 #1-2 ์ต์ ํด๊ฐ์ฅ ๋ง์ ํ์ ๊ฐฏ์๊ฐ ์ต์ ํด๋ค. ๋ฑ ๋ด๋ ์ ๋ ฌ์ ์๊ตฌํ๋ ๋ฌธ์ ๋ค. ํ์๋ฅผ ์์ ์๊ฐ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ฉด ๋ฌธ์ ๊ฐ ๋์ ํ๋ก๊ทธ
kenel.tistory.com
'๊นจ์ ๊ฐ๋ ๐ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ทธ๋ํ - ๊น์ด ์ฐ์ ํ์ (DFS, Depth-First Search) (0) | 2024.09.23 |
---|---|
๊ทธ๋ํ - ๋๋น ์ฐ์ ํ์ (BFS, Breadth-First Search) (0) | 2024.09.23 |
๊ทธ๋ํ - ๊ทธ๋ํ์ ์ข ๋ฅ์ ํํ (0) | 2024.01.09 |
๋์ ํ๋ก๊ทธ๋๋ฐ (Dynamic Programming), ์ํฅ์(Bottom-up) ๋ฐ ํํฅ์(Top-down) ์ ๊ทผ (0) | 2024.01.04 |
์ ๋ ฌ - ํต ์ ๋ ฌ (Quick Sort) (0) | 2023.12.01 |