[프로그래머스] level 2 점프와 순간 이동(JS)

김승현·2023년 2월 24일
0

문제 링크 : 코딩테스트 연습>Summer/Winter Coding(~2018)>점프와 순간 이동

조건

  • 점프 : K 칸 점프 -> 건전지 K만큼 소모O
  • 순간이동 : (현재까지 온 거리) x 2 에 해당하는 위치 이동 -> 건전지 소모X
  • 이동하려는 거리 N이 주어졌을 때 → return 건전지 사용량의 최솟값
    • 정확히 N 까지 가야한다.

규칙

N건전지 사용량의 최솟값n / 2나머지
111 /2 = 01
212 /2 = 00
323 /2 = 11
414 / 2 = 20
525 / 2 = 21
626 / 2 = 30
737 / 2 = 31
818 / 2 = 40
929 / 2 = 41
10210 / 2 = 50
11311 / 2 = 51
12212 / 2 = 60
  • 나머지가 0이면 n이 몫인 건전지 사용량의 최솟값
  • 아니면 n이 몫인 건전지 사용량의 최솟값 + 1(나머지)

ex)


코드

function solution(n) {
  let div = Math.floor(n / 2);

  if (div === 0 && n % 2 === 0) return 0;
  if (div === 0 && n % 2 !== 0) return 1;

  if (n % 2 === 0) return solution(div);
  else return solution(div) + 1;
}
profile
개발자로 매일 한 걸음

0개의 댓글