๐ฉ๐ป ๋ถํ ์ ๋ณต ์ด๋?
ํฐ ๋ฌธ์ ๋ฅผ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋์ด ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ex) ํฉ๋ณ ์ ๋ ฌ, ํต ์ ๋ ฌ, ์ด์ง ๊ฒ์ ๋ฑ
๋ถํ ์ ๋ณต์ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
- ๋ฌธ์ ๋ฅผ ํ๋ ์ด์์ ์์ ๋ถ๋ถ๋ค๋ก ๋ถํ ํ๋ค.
- ๋ถ๋ถ๋ค์ ๊ฐ๊ฐ ์ ๋ณตํ๋ค.
- ๋ถ๋ถ๋ค์ ํด๋ต์ ํตํฉํ์ฌ ์๋ ๋ฌธ์ ์ ๋ต์ ๊ตฌํ๋ค.
โ๏ธ ๋ถํ ์ ๋ณต์ ์ฅ ๋จ์
์ฅ์ :
- ๋ฌธ์ ๋ฅผ ๋๋์ด ์ฒ๋ฆฌํ๋ฉฐ ์ด๋ ค์ด ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ
- ๋ณ๋ ฌ ์ฒ๋ฆฌ์ ์ด์ ์ด ์์ (์๋ก ์ํฅ์ ๋ผ์น์ง ์๊ณ , ๊ฐ๊ฐ์ ํ๋ก์ธ์ฑ์ ๋๋ฆด ์ ์๋ ๊ตฌ์กฐ)
๋จ์ :
- ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฌ์ฉ(์ฌ๊ท ํธ์ถ ๊ตฌ์กฐ)
โ๏ธ ๋ถํ ์ ๋ณต ์์
๊ณ์ ๋ฐ์ผ๋ก ์๋ผ๊ฐ๋ฉฐ ๋ชจ๋ ๋ถํ ์ด ๋๋ฉด ์กฐ๊ฑด์ ๋ง๋ ๊ฐ์ ์ฐพ๊ณ ์ฌ๊ท์ ์ผ๋ก ์ต์ข ๋ต์ ์ฐพ์๊ฐ๋ค.
public static int getMax(int[] arr, int left, int right){
int mid = (left + rigth) / 2;
if(left == right) return arr[left];
left = getMax(arr, left, mid);
right = getMax(arr, mid+1, right);
return (left > right) ? left : right;
}
'์๊ณ ๋ฆฌ์ฆ > ์๊ณ ๋ฆฌ์ฆ ์ด๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ (1. ๋ค์ต์คํธ๋ผ) (0) | 2024.08.06 |
---|---|
๋ฐฑํธ๋ํน ์๊ณ ๋ฆฌ์ฆ (Backtracking) (0) | 2024.08.04 |
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ (Greedy Algorithm) (4) | 2024.07.20 |
ํฌ ํฌ์ธํฐ - ์๊ณ ๋ฆฌ์ฆ (2) | 2024.07.20 |
์ด์ง ํ์ - ์๊ณ ๋ฆฌ์ฆ (0) | 2024.07.20 |