min

프로그래머스 예상 대진표 자바스크립트 본문

알고리즘

프로그래머스 예상 대진표 자바스크립트

minprogramming 2023. 9. 11. 09:28

<문제>

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

<나의 풀이>

//A와 B가 같을 때까지 다음 과정을 수행한다.
//A와 B를 2로 나눈다.
//나눈 값을 반올림한다.
//answer를 하나 올린다.
//answer를 리턴한다.

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

 

<다른 사람의 풀이>

function solution(n,a,b)
{
    var mid = (n + 1) / 2

  if (a > mid && b < mid) {
    return Math.log2(n)
  } else if (a < mid && b > mid) {
    return Math.log2(n)
  } else {
    if(a < mid && b < mid){
      return solution(n / 2, a, b)
    } else{
      return solution(n / 2, a-(n/2), b-(n/2))
    }
  }

}

 

<참고자료>

Math.ceil

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil

 

Math.ceil() - JavaScript | MDN

js

developer.mozilla.org