07 26 - nolsigan/nolsigan.github.io GitHub Wiki
Algorithm
์๊ฐ๋ณต์ก๋
- ์๊ณ ๋ฆฌ์ฆ์ด ์คํ๋๋ ๋์ ์ํํ๋ ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ์ ์๋ฅผ ์ ๋ ฅ์ ํฌ๊ธฐ์ ๋ํ ํจ์๋ก ํํํ ๊ฒ.
Big O notation์ผ๋ก ํํํ๋ฉฐ ์ง๋ฐฐ์ ์ธ ํญ๋ง ์ด๋ฆฐ๋ค.
๋ง์คํฐ ์ ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ์ฐํ ์ ์๋ค.
๋ง์คํฐ ์ ๋ฆฌ
https://ko.wikipedia.org/wiki/%EB%A7%88%EC%8A%A4%ED%84%B0_%EC%A0%95%EB%A6%AC
๊ณ์ฐ๋ณต์ก๋ ํด๋์ค
- P
- ๋คํญ ์๊ฐ์ ํ ์ ์๋ ๋ฌธ์ ๋ค์ ์งํฉ
- NP
- ๋ต์ด ์ฃผ์ด์ก์ ๋ ์ด๊ฒ์ด ์ ๋ต์ธ์ง๋ฅผ ๋คํญ ์๊ฐ ๋ด์ ํ์ธํ ์ ์๋ ๋ฌธ์ ๋ค์ ์งํฉ
- P ๋ฌธ์ ๋ NP ๋ฌธ์ ์ ํฌํจ๋จ
- NP-hard
- NP์ ์ํ๋ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ๋ค๋์ผ ํ์ฐํ ์ ์๋ ๋ฌธ์ ๋ค์ ์งํฉ
- ex) SAT
- NP-complete
- NP-hard์ด๋ฉด์ NP์ธ ๋ฌธ์
ํ๋ คํ๋ ๋ฌธ์ ๊ฐ ์ด๋ค ๋ณํ์ ๊ฑฐ์น๋ฉด NP-hard, NP-complete ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค๋ฉด,
๊ณง ์ด ๋ฌธ์ ๋ NP-hard ์ด์์ผ๋ก ์ด๋ ค์ฐ๋ฉฐ ์ด ๋ฌธ์ ๋ฅผ ๋คํญ ์๊ฐ์ ํธ๋ ๊ฒ์ ์ธ๋ฅ ์ญ์ฌ์ ์๋ฌด๋ ๋ชปํ ๋ฌธ์ ์ด๋ค.
๋ฐ๋ผ์ ๋ชจ๋ธ๋ง์ ๋ฐ๊พธ๊ฑฐ๋ ๊ทผ์ฌํด๋ฅผ ๊ตฌํ๋ ๊ฒ์ด ํ๋ช
ํ๋ค.
์๊ณ ๋ฆฌ์ฆ์ ์ ๋น์ฑ ์ฆ๋ช
- ๊ท๋ฉ๋ฒ๊ณผ ๋ฐ๋ณต๋ฌธ ๋ถ๋ณ์
- ๊ท๋ฅ๋ฒ
- ๋น๋๊ธฐ์ง์ ์๋ฆฌ
- ๊ตฌ์ฑ์ ์ฆ๋ช
๋ฌด์ํ๊ฒ ํ๊ธฐ
์๊ณ ๋ฆฌ์ฆ์ ๋ฐฐ์ฐ๋ค๋ณด๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ๋ ๊ตณ์ด ๋ณต์กํ๊ฒ ํ๋ ค๊ณ ํ ๋๊ฐ ์๋ค.
์ปดํจํฐ์ ์ต๋ ์ฅ์ ์ธ ๊ณ์ฐ ์๋๋ฅผ ์ ํ์ฉํ๋ ๊ฒ์ ๋ฌด์ํ๊ณ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ํ ์ ์๋ ๋ฌธ์ ๋ ๊ทธ๋ฅ ๊ทธ๋ ๊ฒ ํธ๋ ๊ฒ์ด๋ค.
Brute Force๋ฅผ ์ด์ฉํด ํ ์ ์๋ ๋ฌธ์ ์ธ์ง ํ์ธํ๊ณ ์ด ๊ณ์ฐ๋์ ๊ณ์ฐํ๋ค. 1์ด์ ์ฝ 1์ต๊ฐ์ ๊ณ์ฐ์ ํ ์ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ๋๋ต ๋ช์ด๊ฐ ๊ฑธ๋ฆฌ๋ ์ง ๊ณ์ฐํ์ฌ๋ณธ๋ค.