์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ๋์ ๊ณํ๋ฒ
- SQL
- ์์ํ์
- ๋์ ํฉ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ณํฉ์ ๋ ฌ
- ์๊ณ ๋ฆฌ์ฆ
- ๋๋น์ฐ์ ํ์
- ์์๊ตฌํ๊ธฐ
- db
- ์ค๋ธ์
- ํ์ด์ฌ
- ๊น์ด์ฐ์ ํ์
- ๊ตฌํ
- ๊ทธ๋ํ
- ๋จธ์ง์ํธ
- ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ฆฌ๋
- ์ ๋ ฌ
- ์ฐ์ ์์ํ
- ํ๋ก๊ทธ๋๋จธ์ค
- LIS
- BFS
- ๋ฐฑ์ค
- DFS
- ์ํ
- DP
- ๊ทธ๋ํํ์
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
๐๐ญ๐ฐ๐ธ ๐ฃ๐ถ๐ต ๐ด๐ต๐ฆ๐ข๐ฅ๐บ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ๋์งํ - C++ ๋ณธ๋ฌธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ๋์งํ - C++
.23 2024. 4. 4. 18:06๋ฌธ์
โณโณ ๊ฒ์๋ํ๊ฐ ๊ฐ์ต๋์์ต๋๋ค. ์ด ๋ํ๋ N๋ช ์ด ์ฐธ๊ฐํ๊ณ , ํ ๋๋จผํธ ํ์์ผ๋ก ์งํ๋ฉ๋๋ค. N๋ช ์ ์ฐธ๊ฐ์๋ ๊ฐ๊ฐ 1๋ถํฐ N๋ฒ์ ์ฐจ๋ก๋๋ก ๋ฐฐ์ ๋ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ , 1๋ฒ↔2๋ฒ, 3๋ฒ↔4๋ฒ, ... , N-1๋ฒ↔N๋ฒ์ ์ฐธ๊ฐ์๋ผ๋ฆฌ ๊ฒ์์ ์งํํฉ๋๋ค. ๊ฐ ๊ฒ์์์ ์ด๊ธด ์ฌ๋์ ๋ค์ ๋ผ์ด๋์ ์ง์ถํ ์ ์์ต๋๋ค. ์ด๋, ๋ค์ ๋ผ์ด๋์ ์ง์ถํ ์ฐธ๊ฐ์์ ๋ฒํธ๋ ๋ค์ 1๋ฒ๋ถํฐ N/2๋ฒ์ ์ฐจ๋ก๋๋ก ๋ฐฐ์ ๋ฐ์ต๋๋ค. ๋ง์ฝ 1๋ฒ↔2๋ฒ ๋ผ๋ฆฌ ๊ฒจ๋ฃจ๋ ๊ฒ์์์ 2๋ฒ์ด ์น๋ฆฌํ๋ค๋ฉด ๋ค์ ๋ผ์ด๋์์ 1๋ฒ์ ๋ถ์ฌ๋ฐ๊ณ , 3๋ฒ↔4๋ฒ์์ ๊ฒจ๋ฃจ๋ ๊ฒ์์์ 3๋ฒ์ด ์น๋ฆฌํ๋ค๋ฉด ๋ค์ ๋ผ์ด๋์์ 2๋ฒ์ ๋ถ์ฌ๋ฐ๊ฒ ๋ฉ๋๋ค. ๊ฒ์์ ์ต์ข ํ ๋ช ์ด ๋จ์ ๋๊น์ง ์งํ๋ฉ๋๋ค.
์ด๋, ์ฒ์ ๋ผ์ด๋์์ A๋ฒ์ ๊ฐ์ง ์ฐธ๊ฐ์๋ ๊ฒฝ์์๋ก ์๊ฐํ๋ B๋ฒ ์ฐธ๊ฐ์์ ๋ช ๋ฒ์งธ ๋ผ์ด๋์์ ๋ง๋๋์ง ๊ถ๊ธํด์ก์ต๋๋ค. ๊ฒ์ ์ฐธ๊ฐ์ ์ N, ์ฐธ๊ฐ์ ๋ฒํธ A, ๊ฒฝ์์ ๋ฒํธ B๊ฐ ํจ์ solution์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ฒ์ ๋ผ์ด๋์์ A๋ฒ์ ๊ฐ์ง ์ฐธ๊ฐ์๋ ๊ฒฝ์์๋ก ์๊ฐํ๋ B๋ฒ ์ฐธ๊ฐ์์ ๋ช ๋ฒ์งธ ๋ผ์ด๋์์ ๋ง๋๋์ง return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๋จ, A๋ฒ ์ฐธ๊ฐ์์ B๋ฒ ์ฐธ๊ฐ์๋ ์๋ก ๋ถ๊ฒ ๋๊ธฐ ์ ๊น์ง ํญ์ ์ด๊ธด๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ ํ์ฌํญ
- N : 21 ์ด์ 220 ์ดํ์ธ ์์ฐ์ (2์ ์ง์ ์น์ผ๋ก ์ฃผ์ด์ง๋ฏ๋ก ๋ถ์ ์น์ ๋ฐ์ํ์ง ์์ต๋๋ค.)
- A, B : N ์ดํ์ธ ์์ฐ์ (๋จ, A ≠ B ์ ๋๋ค.)
์ ์ถ๋ ฅ ์
๊ตฌํ
๊ฐ๋จํ ์ํ ๋ฌธ์
์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ฌธ์ ์กฐ๊ฑด์์ A์ B๋ ํญ์ ์ด๊ธฐ๊ธฐ ๋๋ฌธ์, A์ B๊ฐ ๋ค์ ๋ผ์ด๋์์ ๋ช ๋ฒ์ ๋ถ์ฌ๋ฐ๋์ง๋ ๊ฐ๊ฐ (A + 1) / 2, (B + 1) / 2๋ฅผ ํตํด ๊ตฌํ ์ ์๋ค.
๋ค์ ์ง์ถ ๋ฒํธ๊ฐ ๊ฐ์์ง๋ ์๊ฐ์ด A์ B๊ฐ ๊ฐ์ ์กฐ๊ฐ ๋์ด ๊ฒ์์ ์งํํ๋ค๋ ์๋ฏธ๊ฐ ๋๋ฏ๋ก, A์ B๊ฐ ๊ฐ์์ง ๋ ๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๋ฉด ๋๋ค.
์ฝ๋
#include <iostream>
using namespace std;
int solution(int n, int a, int b)
{
int answer = 0;
while(a != b) {
a = (a + 1) / 2;
b = (b + 1) / 2;
answer++;
}
return answer;
}
'์ฝ๋ฉํ ์คํธ ์ค๋น > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] N์ผ๋ก ํํ - C++ (0) | 2024.04.11 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์กฐ์ด์คํฑ - C++ (0) | 2024.04.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ก์ธ์ค - C++ (0) | 2024.04.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ๋ฐ๋ฅธ ๊ดํธ - C++ (0) | 2024.04.04 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ฐ๊ธฐ - C++ (0) | 2024.04.04 |