[JavaScript][Programmers] 예상 대진표

조준형·2021년 8월 18일
0

Algorithm

목록 보기
76/142
post-thumbnail

🔎 다음 큰 숫자

❓ 문제링크

https://programmers.co.kr/learn/courses/30/lessons/12985

📄 제출 코드

function solution(n,a,b){
    var answer = 0;
    while (a != b) {
        a = Math.ceil(a / 2);
        b = Math.ceil(b / 2);
        answer++;
    }
    return answer;
}
let n = 8;
let a = 4;
let b = 7;
console.log(solution(n, a, b));

처음에 n칸의 배열을 만들어 대진해서 새로 결과를 넣고, answer을+1시키고 해서 반복을 하려했다.근데 반복하는 걸 구현하다보니까 규칙이 있을 거 같았다.

목표 a=4, b=7
[1,2,3,4,5,6,7,8] answer++	4번째, 7번째
[2,4,6,7]answer++ 		2번째, 4번째
[4,7]answer ++ 			1번째, 2번째

배열에 a와b가 자기번째 index에 있고 한단계 거칠때마다 2로나눈 값의 올림 수가 그 다음 차례가 되는걸 볼 수 있다.
위 과정 후 마지막에 한번 더하면 둘다 1로 같아질테니까 a==b가 될 때까지 a/2와 b/2의 올림값을 계속 저장해주면서, answer를 증가시키니 답이 나왔다.

profile
깃허브 : github.com/JuneHyung

0개의 댓글