fullfish 2022. 9. 9. 16:47

코드

function solution(n, a, b) {
  let count = 1;
  if (a > b) {
    let temp = a;
    a = b;
    b = temp;
  }
  while (n > 1) {
    if (a + 1 === b && b % 2 === 0) return count;
    a = Math.ceil(a / 2);
    b = Math.ceil(b / 2);
    count++;
    n /= 2;
  }
}

다른 사람 코드

function solution(n,a,b)
{
    let answer = 0;
    while(a !== b) {
        a = Math.ceil(a/2);
        b = Math.ceil(b/2);
        answer++;
    }

    return answer;
}

굳이 n을 사용하지 않아도 됐다

a와 b가 7,8처럼 맞붙을 경우는 어차피 2로나누고 올리면 같은 숫자가 되므로

a,b의 대소비교도 할 필요가 없었다