๐ฃ ์น์ํด์ง๊ณ ์ถ์ ์๊ณ ๋ฆฌ์ฆ
๋์ ์นํด์ง๊ณ ์ถ์ผ๋ ์๊พธ๋ง ๋ฉ์ด์ง๋ ์น๊ตฌ ์๊ณ ๋ฆฌ์ฆ.. ๊ทธ์ ๋ํด ๊ฐ๋
๊ณผ ๊ธฐ๋ฒ์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
๐ฃ ์๊ณ ๋ฆฌ์ฆ(Algorithm)
1. ๊ฐ๋
์๊ณ ๋ฆฌ์ฆ์ ์ด๋ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ ํด์ง ์ผ๋ จ์ ์ ์ฐจ๋ ๋ฐฉ๋ฒ์ ๊ณต์ํํ ํํ๋ก ํํํ ๊ธฐ๋ฒ
2. ํน์ฑ
์๊ณ ๋ฆฌ์ฆ์ ํํ์ ์์ฐ์ด, ์์๋, ์์ฌ์ฝ๋, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด ์กด์ฌ. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์๋๋๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ํํ์ ๊ฐ๋ฅ.
์
๋ ฅ |
์ธ๋ถ๋ก๋ถํฐ ์
๋ ฅ๋๋ ์๋ฃ 0 ๊ฐ ์ด์ |
์ถ๋ ฅ |
์ถ๋ ฅ๋๋ ๊ฒฐ๊ณผ 1๊ฐ ์ด์ |
๋ช
ํ์ฑ |
๊ฐ ๋ช
๋ น์ด์ ์๋ฏธ๊ฐ ๋ช
ํ |
์ ํ์ฑ |
์ ํด์ง ๋จ๊ณ๋ฅผ ์ง๋๋ฉด ์ข
๋ฃ |
์ ํจ์ฑ |
๋ชจ๋ ๋ช
๋ น์ ์คํ์ด ๊ฐ์ผํ ์ฐ์ฐ๋ค์ด์ด์ผ ํจ |
๐ฃ ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฒ
1. ๋ถํ ๊ณผ ์ ๋ณต(Divide and Conquer)
๋ฌธ์ ๋ฅผ ๋๋ ์ ์์ ๋๊น์ง ๋๋๊ณ , ๊ฐ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋ค์ ๋ณํฉํ์ฌ ๋ฌธ์ ์ ๋ต์ ์ป๋ ์๊ณ ๋ฆฌ์ฆ
2. ๋์ ๊ณํ๋ฒ(Dynamic Programming)
์ด๋ค ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ๊ทธ ๋ฌธ์ ๋ฅผ ๋ ์์ ๋ฌธ์ ์ ์ฐ์ฅ์ฑ์ผ๋ก ์๊ฐํ๊ณ , ๊ณผ๊ฑฐ์ ๊ตฌํ ํด๋ฅผ ํ์ฉํ๋ ๋ฐฉ์์ ์๊ณ ๋ฆฌ์ฆ
3. ํ์๋ฒ(Greedy)
๊ฒฐ์ ์ ํด์ผํ ๋๋ง๋ค ๊ทธ ์๊ฐ์ ๊ฐ์ฅ ์ข๋ค๊ณ ์๊ฐ๋๋ ๊ฒ์ ํด๋ต์ผ๋ก ์ ํํจ์ผ๋ก์จ ์ต์ข
์ ์ธ ํด๋ต์ ๋๋ฌํ๋ ๋ฐฉ์์ ์๊ณ ๋ฆฌ์ฆ
4. ๋ฐฑํธ๋ํน(Backtracking)
์ด๋ค ๋
ธ๋์ ์ ๋ง์ฑ ์ ๊ฒ ํ, ์ ๋งํ์ง ์์ผ๋ฉด ๊ทธ ๋
ธ๋์ ๋ถ๋ชจ ๋
ธ๋๋ก ๋๋์๊ฐ ํ ๋ค๋ฅธ ์์๋
ธ๋๋ฅผ ๊ฒ์ํ๋ ์๊ณ ๋ฆฌ์ฆ
๐ฃ ์๊ฐ ๋ณต์ก๋์ ๋ฐ๋ฅธ ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ
์ฐธ๊ณ - ์๊ฐ๋ณต์ก๋์ ๋ํ ๊ฐ๋
์ ๋ฆฌ
๋น
์ค ํ๊ธฐ๋ฒ Big O Notation - ์๊ฐ๋ณต์ก๋, ๊ณต๊ฐ๋ณต์ก๋
๐ฃ ๋น
์ค ํ๊ธฐ๋ฒ Big O Notation ๋น
์ค ํ๊ธฐ๋ฒ ๊ฐ๋
๋ค์๋ณด๊ธฐ! ๋น
์ค ํ๊ธฐ๋ฒ Big O Notation - ๊ฐ๋
๐ฃ ๋น
์ค ํ๊ธฐ๋ฒ Big O Notation์ค๋์ ๋น
์ค ํ๊ธฐ๋ฒ์ ๋ํด์ ์ ๋ฆฌํด๋ณด์! ์ผ๋จ์ ๊ฐ๋
์ ๋ํด์ ์ดํด๋ณด๊ณ ,
haileyham.tistory.com
1. O(1)
- ์์ํ ๋ณต์ก๋
- ์๋ฃ ํฌ๊ธฐ ๋ฌด๊ดํ๊ฒ ํญ์ ๊ฐ์ ์๋๋ก ์๋
- ์๊ณ ๋ฆฌ์ฆ ์ํ ์๊ฐ์ด ๋ฐ์ดํฐ ์์ ๊ด๊ณ์์ด ์ผ์
- ๋ํ ์๊ณ ๋ฆฌ์ฆ : ํด์ฑ ํจ์(Hash Function)
2. O(log2n)
- ๋ก๊ทธํ ๋ณต์ก๋
- ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋จ๊ณ์ ์๊ฐ log2n๋ฒ๋งํผ์ ์
- ๋ํ ์๊ณ ๋ฆฌ์ฆ : ์ด์ง ํ์(Binary Search)
3. O(n)
- ์ ํ ๋ณต์ก๋
- ์
๋ ฅ ์๋ฃ๋ฅผ ์ฐจ๋ก๋ก ํ๋์ฉ ๋ชจ๋ ์ฒ๋ฆฌ
- ์ํ ์๊ฐ์ด ์๋ฃ ํฌ๊ธฐ์ ์ง์ ์ ๊ด๊ณ๋ก ๋ณํจ(์ ๋น๋ก)
- ๋ํ ์๊ณ ๋ฆฌ์ฆ : ์์ฐจ ํ์(Sequential Search)
4. O(nlog2n)
- ์ ํ ๋ก๊ทธํ ๋ณต์ก๋
- ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋จ๊ผ์ ์๊ฐ nlog2n๋ฒ๋งํผ์ ์ํ ์๊ฐ์ ๊ฐ์ง
- ๋ํ ์๊ณ ๋ฆฌ์ฆ : ํต ์ ๋ ฌ, ํฉ๋ณ ์ ๋ ฌ(๋ณํฉ ์ ๋ ฌ), ํ ์ ๋ ฌ
5. O(n²)
- ์ ๊ณฑํ ์ฃผ์ ์ฒ๋ฆฌ ๋ฃจํ ๊ตฌ์กฐ๊ฐ 2์ค์ธ ๊ฒฝ์ฐ
- nํฌ๊ธฐ ์์ ๋์๋n²์ด nlog2n๋ณด๋ค ๋น ๋ฅผ ์ ์์
- ๋ํ ์๊ณ ๋ฆฌ์ฆ : ๊ฑฐํ ์ ๋ ฌ, ์ฝ์
์ ๋ ฌ, ์ ํ ์ ๋ ฌ
๐ฃ ์๊ณ ๋ฆฌ์ฆ ์ค๋ช
๊ฐ ๊ฒ์๊ธ ์์ฑ ํ ๋งํฌ ์ฒจ๋ถ ์์ !_!