프로그래머스 코테풀기 예상대진표
처음 생각
해당하는 그룹 번호 찾기
참가자 번호 A=1, B=2인 경우 각각 /2를 한 다음 올림처리를 하면 같은 1이 도출되며, 같은 그룹인 것을 알 수 있다.
따라서 라운드 1에서 종료
다음으로, 참가자 번호 A=1, B=4인 경우엔
라운드 1 계산시 1 2
라운드 2 계산시 1/2=0.5->1 , 2/2 =1
로 라운드 2번의 계산이 나온다.
반씩 줄어들고 있음을 생각하고, 같은 그룹번호가 될 때까지 계속 계산해준다.
function solution(n,a,b)
{
// 게임 참가자수 n, 참가자 번호 A, 참가자 번호 B
// return A번 참가자와 B번 참가자가 몇 번째 라운드에서 만나는지
let rounge = 0;
// 각각 해당하는 그룹 번호를 먼저 찾기
// 나누기 2를 해본다음에 무조건 오름으로 계산해주면 해당하는 그룹번호를 확인가능
while (a !== b){
a = Math.ceil(a/2)
b = Math.ceil(b/2)
rounge ++
}
return rounge;
}