프로그래머스 [점프와 순간 이동] - js

점프와 순간이동
https://programmers.co.kr/learn/courses/30/lessons/12980


  • 주어진 N이 10억 이하라고 주어져 있다. ==> 배열로 풀면 overflow 발생
  • 뒤에서 부터 풀어보자 ==> N부터 시작하여 시작점인 0까지 도착하는 최소 이동.

const solution = (n) => {
    let answer = 0
    
    while (true) {
      	// 시작점에 도착한 경우 break.
        if (!n) {
          break;
        }
      	// 순간이동으로 갈 수 있는 경우는 나누어 버리기
        while (!(n%2)) {
            n = parseInt(n/2);
        }
        answer += 1;
        n -= 1;
    }
    return answer;
}

좋은 웹페이지 즐겨찾기