์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- ์ฐ๋ถํฌdb
- leetcode
- xv6
- ์ฃผ๊ธฐ์ ํธ
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- mariadb
- tcp ํ๋กํ ์ฝ
- til
- ์ค๋ฅ์ ์ด
- git merge
- ํ ํฐ ๋ฒ์ค
- reducible
- ์ฝ๋ฉํ ์คํธ์ค๋น
- IEEE 802
- ๋น์ฃผ๊ธฐ์ ํธ
- ์ค๋ ๋
- i-type
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ํ๋ก์ด๋์์
- ์ค๋ธ์
- ๊ฐ๋ฐ์์ทจ์
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์์๋ฒํธ
- tcp ์ธ๊ทธ๋จผํธ
- ํญํด99
- ์ค๋ฅ๊ฒ์ถ
- ๋ฐ์ดํฐ ์ ์ก
- 99ํด๋ฝ
- well known ํฌํธ
- ํ๋ ์ ๊ตฌ์กฐ
- Today
- Total
Unfazedโ๏ธ๐ฏ
[์ด์ง ํ์] int mid = left + (right - left) / 2; ๋ณธ๋ฌธ
[์ด์ง ํ์] int mid = left + (right - left) / 2;
9taetae9 2025. 2. 1. 15:50์ด์ง ํ์์ ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ํน์ ๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋งค ๋ฐ๋ณต๋ง๋ค ๊ฒ์ ๋ฒ์๋ฅผ ๋ฐ์ผ๋ก ์ค์ด๋ ๊ณผ์ ์์ ์ค๊ฐ ์ธ๋ฑ์ค(mid)๋ฅผ ๊ณ์ฐ์ ๋จ์ํ๊ฒ (left + right) / 2๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ฒํ๋ก์ฐ์ ์ํ์ด ์กด์ฌํ๋ค.
๊ฒฐ๋ก ๋ง ๋จผ์ ๋งํ๋ฉด, int mid = left + (right - left) / 2; ๋ฐฉ์์ ๊ถ์ฅํ๋ค.
1. ๊ธฐ๋ณธ์ ์ธ ์ค๊ฐ ์ธ๋ฑ์ค mid ๊ณ์ฐ ๋ฐฉ์
์ด์ง ํ์์์๋ ๊ฒ์ ๋ฒ์์ ์ ๋ ์ธ๋ฑ์ค์ธ left์ right๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ณ์ฐํ๋ค.
์ด ๋ฐฉ์์ ๊ฐ๋จํ์ง๋ง, left์ right๊ฐ ๋งค์ฐ ํฐ ๊ฐ์ผ ๊ฒฝ์ฐ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ ์ ์๋ค.
2. ์ค๋ฒํ๋ก์ฐ
์ค๋ฒํ๋ก์ฐ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ณ์์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์๋ฅผ ์ด๊ณผํ์ฌ ๊ฐ์ด ํํ๋ ๋ ๋ฐ์ํ๋ค.
์๋ฅผ ๋ค์ด, int ํ์
์ ์ผ๋ฐ์ ์ผ๋ก -2,147,483,648๋ถํฐ 2,147,483,647๊น์ง์ ๊ฐ์ ํํํ ์ ์๋๋ฐ,
๋ง์ฝ left์ right๊ฐ ๋ชจ๋ ํฐ ๊ฐ์ด๋ฉด, ์ด ๋ ๊ฐ์ ๋ํ๋ ๊ณผ์ ์์ ์ด ๋ฒ์๋ฅผ ๋์ด๊ฐ ์ ์๋ค.
์๋ฅผ ๋ค์ด, left = 2,000,000,000์ด๊ณ right = 2,000,000,010์ธ ๊ทน๋จ์ ์ธ ์ํฉ์ ๊ฐ์ ํด๋ณด๋ฉด,
- (left + right)์ ๊ฐ์ 4,000,000,010์ด ๋๊ณ , ์ด๋ int ํ์ ์ด ํํํ ์ ์๋ ์ต๋๊ฐ 2,147,483,647๋ฅผ ํจ์ฌ ์ด๊ณผํ๋ค.
- ์ด๋ฐ ๊ฒฝ์ฐ, ์๋ชป๋ ๊ณ์ฐ์ด ๋์ด ์ฌ๋ฐ๋ฅธ mid ๊ฐ์ด ๋์ถ๋์ง ์์ผ๋ฉฐ, ์์ธ ์ํฉ์ด ๋ฐ์ํ ์ ์๋ค.
3. ๊ฐ์ ๋ mid ๊ณ์ฐ ๋ฐฉ์: left + (right - left) / 2
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๋ฐ๋ก ์๋์ ๊ฐ๋ค.
- (right - left): ์ด ๊ฐ์ ํญ์ ๋ฐฐ์ด ๋ด์ ๋ฒ์๋ฅผ ๋ํ๋ด๋ฉฐ, ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ ์ํ์ด ๋งค์ฐ ๋ฎ๋ค.
- left + ...: left ๊ฐ์ (right - left)์ ์ ๋ฐ ๊ฐ์ ๋ํ๋ฏ๋ก, ์ค์ ์ค๊ฐ ์ธ๋ฑ์ค๋ฅผ ์์ ํ๊ฒ ๊ณ์ฐํ ์ ์๋ค.
์ฆ, ๋ ์ธ๋ฑ์ค์ ํฉ์ ์ง์ ๊ณ์ฐํ์ง ์๊ธฐ ๋๋ฌธ์, ๋ ๊ฐ์ด ํฌ๋๋ผ๋ ์ค๋ฒํ๋ก์ฐ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ํจ๊ณผ์ ์ผ๋ก ์ค์ผ ์ ์๋ค.
์ ๋ฆฌ
์ด์ง ํ์์์ ์ค๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ณ์ฐํ ๋, ๋จ์ํ (left + right) / 2๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ค๋ฒํ๋ก์ฐ์ ์ํ์ด ์กด์ฌํ๋ค.
int mid = left + (right - left) / 2; ๋ฐฉ์์ ์ด์ฉํ๋ฉด ๋ณด๋ค ์์ ์ ์ธ ์ฝ๋ ์์ฑ์ ํ ์ ์๋ค.
'๋ฌธ์ ํด๊ฒฐ (PS) > ๊ธฐ์ตํด๋ ๊ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
|a - b| = |c - d| ์ ๋๊ฐ ์ฐจ์ด๊ฐ ๊ฐ์ ๊ฒฝ์ฐ ํ์ฉํ๊ธฐ (0) | 2024.09.19 |
---|---|
2์ ์ ๊ณฑ์ ํ๋ณ, ์๊ฑฐ๋ ๊ฐ์ ์๋ค ์ค ๊ฐ์ฅ ํฐ 2์ ์ ๊ณฑ์ ๊ตฌํ๊ธฐ (0) | 2024.01.17 |
10์ ์ ๊ณฑ์์ ๋ชจ๋๋ก 9 ์ฐ์ฐ์ ํ์ฉ, ๋์งํธ ๋ฃจํธ(์๋ฆฟ์๊ทผ), repeated digital sum (0) | 2024.01.13 |
๋ฐฐ์ ํ์ ๋ฒ (0) | 2024.01.13 |
๋ถ๋ถ ์์ด (0) | 2023.12.22 |