[알고리즘] 예상 대진표 -프로그래머스 코딩테스트 연습 by JavaScript

Kim EunKyu·2020년 12월 26일
0

이 문제는 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;
}
profile
안녕하세요 성장하고 싶은 개발자입니다 :)

0개의 댓글

관련 채용 정보