using System;
class Solution
{
public int solution(int n, int a, int b)
{
int answer = 1;
int first = a;
int second = b;
while(true)
{
if(first-second == 1 || second-first == 1)
{
if(first > second)
{
if(first % 2 == 0) break;
}
else if(first % 2 != 0) break;
}
answer++;
if(first % 2 == 0) first /= 2;
else
{
if(first == 1) first = 1;
else
{
first = (first + 1) / 2;
}
}
if(second % 2 == 0) second /= 2;
else
{
if(second == 1) second = 1;
else
{
second = (second + 1) / 2;
}
}
}
return answer;
}
}
'C# 알고리즘 코드카타' 카테고리의 다른 글
82. 멀리 뛰기 (0) | 2024.02.29 |
---|---|
81. N개의 최소공배수 (0) | 2024.02.27 |
79. 카펫 (0) | 2024.02.21 |
78. 피보나치 수 (0) | 2024.02.21 |
77. 이진 변환 반복하기 (0) | 2024.02.16 |