제출 코드
- 사용 알고리즘 :
수학
다음 라운드로 올라가게 될 경우, 짝수는 그대로 (홀수는 현재값에 1을 더한 뒤)에 2로 나눈 수의 번호를 배정받게 된다는 것만 알면 쉽게 풀수 있다.
정수에서의 나머지 연산 시, 소수는 버린다는 점을 이용하면 홀짝 상관없이 1을 더하고 2로 나눠주면 된다.
바로 모든 테케를 맞추진 못했는데, 바로 연달아 있는 수끼리 대진한다고만 생각해서 (2, 3) 이런 경우를 예외처리해주지 않아 틀렸다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution
{
public int solution(int n, int a, int b)
{
int me=a, you=b;
int answer = 1;
while(true){
if(Math.abs(me-you)==1 && (me+1)/2==(you+1)/2) break;
me = (me+1)/2;
you = (you+1)/2;
answer++;
}
return answer;
}
}