Algorithm/programmers

예상 대진표 ( Level 2, JavaScript, 2017 팁스타운 )

takeU 2021. 7. 31. 13:43
반응형

예상 대진표 ( Level 2 )

Programmers 2017 팁스타운 ( JavaScript )

문제 링크

나의 풀이

function solution(n,a,b) {
    let count = 0, temp = a;
    if ( b < a ) {
        a = b
        b = temp
    }
    while ( true ) {
        if ( a % 2 && Math.abs(b-a) === 1 ) return count+1
        a = a % 2 ? (a + 1)/2 : a/2
        b = b % 2 ? (b + 1)/2 : b/2
        count += 1
    }
}
  1. a,b 대소 비교 후 작은것을 a 에 넣어준다.
  2. 반복문을 통해 a와 b를 홀수, 짝수를 판별해 값을 줄여주고 이 때 반복 횟수를 count 를 통해 저장한다
  3. a,b가 1이 차이나면서 a가 대진표의 왼쪽에 있을 경우 마지막 대진 1번을 더한 count+1 을 리턴