์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์๋ฒ ๋ฉ
- native
- ๋ฐ์ดํฐ๋ถ์
- ๋ฆฌ์กํธ
- ๋จธ์ ๋ฌ๋
- ์ํ์ฝ๋ฉ
- ๋ฐฑ์ค
- ๊นํ
- c++
- ์ ํ๋์ํ
- ๊ฒฐ์ ํธ๋ฆฌ
- Git
- ๋ถ์
- nlp
- ํ์ดํ๋
- ๋์
- ์ธํ๋ฐ
- Titanic
- AI
- ๋ค์ดํฐ๋ธ
- cs231n
- react
- Kaggle
- ์๋๋ก์ด๋์คํ๋์ค
- ํ๊ตญ์ด์๋ฒ ๋ฉ
- ๋ฅ๋ฌ๋
- linearalgebra
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐ์ดํฐ์๊ฐํ
- ๋ฐ์ดํฐ
- Today
- Total
yeon's ๐ฉ๐ป๐ป
[์๊ณ ๋ฆฌ์ฆ] ๋ถํ ์ ๋ณต (Divide & Conquer) ๋ณธ๋ฌธ
[์๊ณ ๋ฆฌ์ฆ] ๋ถํ ์ ๋ณต (Divide & Conquer)
yeon42 2021. 10. 25. 21:00๋ถํ ์ ๋ณต (Divide & Conquer)
: ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ๋ ์ด์์ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋ ๋ค ๊ฐ ๋ฌธ์ ์ ๋ํ ๋ต์ ์ฌ๊ท ํธ์ถ์ ์ด์ฉํด ๊ณ์ฐํ๊ณ ,
๊ฐ ๋ถ๋ถ ๋ฌธ์ ์ ๋ต์ผ๋ก๋ถํฐ ์ ์ฒด ๋ฌธ์ ์ ๋ต์ ๊ณ์ฐํด ๋
* ์ผ๋ฐ์ ์ธ ์ฌ๊ท ํธ์ถ๊ณผ ๋ค๋ฅธ ์ ์ ๋ฌธ์ ๋ฅผ ๊ฑฐ์ ๊ฐ์ ํฌ๊ธฐ์ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋๋ค๋ ๊ฒ!
1. ๋ฌธ์ ๋ฅผ ๋ ์์ ๋ฌธ์ ๋ก ๋ถํ ํ๋ ๊ณผ์ (divide)
2. ๊ฐ ๋ฌธ์ ์ ๋ํด ๊ตฌํ ๋ต์ ์๋ ๋ฌธ์ ์ ๋ํ ๋ต์ผ๋ก ๋ณํฉํ๋ ๊ณผ์ (merge)
3. ๋ ์ด์ ๋ต์ ๋ถํ ํ์ง ์๊ณ ๊ณง์ฅ ํ ์ ์๋ ๋งค์ฐ ์์ ๋ฌธ์ (base case)
* 1๋ถํฐ n๊น์ง์ ํฉ์ ๊ตฌํ๋ ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ: 1 + 2 + ... + n
fastSum() = 1 + 2 + ... + n
= (1 + 2 + ... + n/2) + ((n/2 + 1) + ... + n)
(n/2 + 1) + ... + n)
= (n/2 + 1) + (n/2 + 2) + ... + (n/2 + n/2))
= (n/2) * (n/2) + (1 + 2 + ... + n/2)
= (n/2) * (n/2) + fastSum(n/2)
fastSum(n) = 2*fastSum(n/2) + (n^2/4) (n์ด ์ง์์ผ ๋)
int fastsum(int n) {
if (n==1) return 1;
if (n%2 == 1) return fastSum(n-1) + n;
return 2*fastsum(n/2) + (n/2)*(n/2);
}
* ํ๋ ฌ์ ๊ฑฐ๋ญ์ ๊ณฑ์ ๊ตฌํ๋ ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ
class SquareMatrix;
SquareMatrix identity(int n); // ํฌ๊ธฐ๊ฐ n*n์ธ ํญ๋ฑํ๋ ฌ์ ๋ฐํํ๋ ํจ์
// A^m์ ๋ฐํ
SquareMatrix pow(const SquareMatrix& A, int m) {
if (m==0) return identity(A.size());
if (m%2 > 0) return pow(A, m-1) * A;
// A^m = (A^(m/2)) * (A^(m/2))
SquareMatrix half = pow(A, m/2);
return half*half;
'Computer ๐ป > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] ๋ฐฑ์ค(BOJ) | 1064๋ฒ: ํํ์ฌ๋ณํ (0) | 2021.08.16 |
---|---|
[C++] ๋ฐฑ์ค(BOJ) | 1037๋ฒ: ์ฝ์ (0) | 2021.08.10 |
[C++] ๋ฐฑ์ค(BOJ) | 1010๋ฒ : ๋ค๋ฆฌ ๋๊ธฐ (0) | 2021.08.09 |
[C++] ๋ฐฑ์ค(BOJ) 1110๋ฒ ๋ํ๊ธฐ ์ฌ์ดํด (0) | 2021.07.24 |
[C++] ๋ฐฑ์ค(BOJ) 2292๋ฒ ๋ฒ์ง (0) | 2021.07.22 |