이 문제는 N명의 토너먼트 진출자가 있는데, 여기서 A와 B가 각각 몇번째 출전자인지 정해지고 이 두명이 몇번째 차례에서 만날 것인지 풀어야 한다.
토너먼트는 한번 라운드를 치를때마다 참가자의 수가 반씩 줄어든다. 그리고 해당 참가자의 번호도 반씩 줄게 되는데 이 아이디어에 착안하여 문제를 풀었다. 즉, A와 B의 숫자를 반씩 줄이고 그것을 올림한 숫자를 계속해서 비교하는데 이때 둘이 같을때 문제가 끝나도록 코딩하였다.
문제풀이
function solution(n,a,b)
{
var answer = 0;
let aNum = a;
let bNum = b;
while(true){
if(aNum === bNum){
break;
}
aNum = Math.ceil(aNum/2);
bNum = Math.ceil(bNum/2);
answer++;
}
return answer;
}