프로그래머스 코딩테스트 (예상 대진표)
class Solution
{
public int solution(int n, int a, int b)
{
int answer = 0;
Log l = new Log();
while(true){
if(n/2<=Math.abs(a-b)){
answer = l.log2(n);
return answer;
}
if(a<=n/2 && b<=n/2){
n=n/2;
}
else if(a>n/2 && b>n/2){
n=n/2;
a=a-n;
b=b-n;
}
else{
answer = l.log2(n);
return answer;
}
}
}
}
class Log{
int log2(int x){
return (int)(Math.log(x)/Math.log(2));
}
}
/*
int rslt = (a-1)^(b-1);
int pos = 0;
while(rslt != 0){
pos++;
rslt >>= 1;
}
return pos;
*/ XOR
댓글