Tags
- ๋ฌธ์์ด
- CodingTest
- dfs
- ์๋ฃ๊ตฌ์กฐ
- ๋ฐฑํธ๋ํน
- ๊ทธ๋ํ ํ์
- ์ํ
- Brute Force Algorithm
- BFS
- Dynamic Programming
- ๋๋น ์ฐ์ ํ์
- BOJ
- ์ ๋ ฌ
- LV2
- Python
- Study
- stack
- ์ ์๋ก
- SpringBoot
- greedy
- ์๋ฎฌ๋ ์ด์
- sort
- Java
- ๊น์ด ์ฐ์ ํ์
- ๊ต์ฌ
- queue
- ๊ทธ๋ํ ์ด๋ก
- DP
- PGM
- ๊ตฌํ
Archives
๊ธฐ๋ก๋ฐฉ
Lv.2 : ์์ ๋์งํ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ํ ๋๋จผํธ์์ n๋ช
์ ์ฌ๋ ์ค a๋ฒ์งธ ์ฌ๋๊ณผ b๋ฒ์งธ ์ฌ๋์ด ๋ง๋ถ๊ฒ ๋ ๋ผ์ด๋๋ฅผ ๋ฆฌํดํ๋ค.
- a์ b๋ ์๋ก ๋ง๋๊ธฐ ์ ๊น์ง ํญ์ ์น๋ฆฌํ๋ค.
- ์น์๋ค์ ๋ค์ 1๋ถํฐ n`๊น์ง ๋ฒํธ๋ฅผ ๋งค๊ฒจ ๋ถ๊ฒ๋๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- a < b์ผ๋, b-a == 1 ์ด๊ณ , a๊ฐ ํ์, b๊ฐ ์ง์์ผ๋ ๋ง๋ถ๊ฒ๋๋ค.
- ์ ์กฐ๊ฑด์ด ๋ง์กฑ ํ ๋๊น์ง a์ b ๊ฒ์์ ์งํ์ํจ๋ค.
๐ธ ์ฝ๋ ๐ธ
class Solution
{
public int solution(int n, int a, int b)
{
if(a > b) {
int temp = a;
a = b;
b = temp;
}
int answer = 1;
while(!(b-a == 1 && a%2 == 1 && b%2 == 0)) {
answer++;
a = a/2 + a%2;
b = b/2 + b%2;
}
return answer;
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- a < b ๊ฐ ๋๋๋ก ๋ง์ถฐ์ค๋ค.
- ๊ฒ์์ด ์งํ ๋ ๋ 2๋ก ๋๋ ๋ชซ + 2๋ก ๋๋ ๋๋จธ์ง๋ก ๋ฐ๊พธ๋ฉด ๋ค์ ๋ผ์ด๋ ๋ฒํธ๋ฅผ ๊ณ์ฐํ ์ ์๋ค.
๐ธ end ๐ธ
- ์๋ฆฌ ์ดํด๊ฐ ์ฌ์์ ์์ฝ๊ฒ ํ์ดํ ์ ์์๋ค.
- ํ์ง๋ง ๋ค๋ฅธ ํ์ด๋ฅผ ๋ณด๋ ๋ฌธ์ ์ ์จ์ ์๋ฆฌ ํ์
์ด ๋ถ์กฑํ๋ค๊ณ ์๊ฐํ๋ค.
- 1๋ฒ ํ์ด
- ๋๋จธ์ง๋ ์๊ฐํ์ง ์๊ณ , a์ b์์ -1 ํ ๊ฐ๊ฐ 2๋ก๋๋ ๋ชซ์ด ๊ฐ์ ์ง ๋๊น์ง 2๋ก ๋๋๋ค.
- 2๋ก ๋๋ ์ ๋ชซ์ด ๊ฐ์ผ๋ฉด ๋ง๋ถ๋ ์ํฉ์ด๋ผ๋๊ฒ ์๊ฐํ์ง ๋ชปํ ๋ถ๋ถ์ด๋ค.
- 2๋ฒ ํ์ด
- ํ๊ธฐ์ ์ธ ํ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ, ํ ์ค๋ก ๊ณ์ฐํ ์ ์๋ค.
- 2๋ก ๊ณ์ ๋๋ ์ ๋ชซ์ด ๊ฐ์์ง๋ ๋ผ์ด๋๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์, 2์ง์์์ ๊ฒน์น์ง ์๋ 1 ์ค ๊ฐ์ฅ ํฐ ๊ฐ๊น์ง์ ๊ธธ์ด๋ผ๋ ์๋ฆฌ๋ผ๊ณ ์ดํดํ๋ค. 2์ง๋ฒ์ ์ ์ด์ฉํ๋ ๊ธฐ๊ฐ๋งํ ๊ฒ ๊ฐ๋ค.
- 1๋ฒ ํ์ด
Integer.toBinaryString((a-1)^(b-1)).length();
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.2 : ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2023.09.17 |
---|---|
Lv.2 : N๊ฐ์ ์ต์๊ณต๋ฐฐ์ (0) | 2023.09.16 |
Lv.2 : ์ ํ์ ์๊ฐ ์ด๋ (0) | 2023.09.14 |
Lv.2 : ๊ตฌ๋ช ๋ณดํธ (0) | 2023.09.12 |
Lv.2 : ์์ด ๋๋ง์๊ธฐ (0) | 2023.09.12 |