프로그래머스 점프와 순간 이동 (JavaScript)

2025. 3. 25. 18:22·코딩테스트/프로그래머스

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12980

문제 풀이

current_location 변수를 하나 설정하여 n에 도달할 때까지 점프, 순간이동을 하여 answer를 구하려고했음

-> 무조건 현재 위치에서 순간이동(현재위치x2)한 값을 이동하는 것으로 최소 값을 구할 수 없음

6으로 간다했을 때

1. (틀림) 순간이동으로 2 -> 4로 이동 후 6으로 가면 최소 값이 3이 나옴

2. 2에서 순간이동을 하지 않고 점프를 한다음(3) 순간이동을 하면 6으로 바로 감 -> 최소 값 2

따라서 0에서 n까지를 구하는 것보다 n에서 0에 도달할 때까지 점프를 최소한으로 하게하면 됨

1. n이 2로 나누어 떨어진다? -> 순간이동이 가능 (n /= 2)

2. n이 2로 나누어 떨어지지 않는다? -> 1칸 점프해야 함(n -= 1)

 

function solution(n)
{
    let answer = 0;
    
    while (n > 0) {
        // 순간이동 할 수 있다 -> 2로 나누어 떨어진다.
        if (n % 2 === 0) {
            n /= 2;
        } else {
            // 1칸 점프해야 함
            n -= 1;
            answer++;
        }
    }
    
    return answer;
}

결론

0 -> n이 아닌 n -> 0으로 역으로 접근하는 방법을 생각하면 쉽게 문제를 해결할 수 있음

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

프로그래머스 멀리 뛰기  (0) 2025.04.01
프로그래머스 명예의 전당 (1) JavaScript  (0) 2025.04.01
프로그래머스 귤 고르기 (JavaScript)  (1) 2025.03.27
프로그래머스 구명보트 (JavaScript)  (0) 2025.03.27
프로그래머스 택배 배달과 수거하기 (JavaScript)  (0) 2025.02.14
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • 프로그래머스 명예의 전당 (1) JavaScript
  • 프로그래머스 귤 고르기 (JavaScript)
  • 프로그래머스 구명보트 (JavaScript)
  • 프로그래머스 택배 배달과 수거하기 (JavaScript)
의현
의현
개발은 즐거워
  • 의현
    UIHYEON BLOG
    의현
  • 전체
    오늘
    어제
    • 분류 전체보기 (116)
      • 프론트엔드 (47)
        • JavaScript (47)
        • TypeScript (0)
        • HTML (0)
        • CSS (0)
        • React (0)
      • 프로젝트 (2)
        • Task Flow (2)
      • 코딩테스트 (66)
        • Binary Search (2)
        • bfs (Breadth-first s.. (4)
        • dfs (Deapth-first se.. (1)
        • Greedy (1)
        • Dynamic Programming (1)
        • two pointer (4)
        • 구현 (2)
        • LIS(Longest Increasi.. (0)
        • 문자열 (3)
        • 자료구조 (4)
        • 비트마스크 (2)
        • 수학 (2)
        • 프로그래머스 (40)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
의현
프로그래머스 점프와 순간 이동 (JavaScript)
상단으로

티스토리툴바