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

이은빈 EUNBIN·2021년 5월 7일
0
post-thumbnail

📌 문제

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



📌 풀이

// 망한 접근
function solution(n) {
    let jump = 1;
    let cases =[];
    
    while(jump <= n) {
        let usage = jump;
        let moving = jump;
    
        while(moving * 2 < n) {
            moving *= 2;
        }
        usage += n - moving;
        cases.push(usage);
        jump++;
    }
    console.log(cases);
}

jump 늘려가면서 경우의 수 구해서 가장 작은거 반환하면 될 줄 알았는데
이래저래 해보다가 또 잘못 접근하고 있음을 인지함..🙄


// 다른 분의 코드
function solution(n){
    var answer = 0;

    while(n > 0) {
        if(n % 2 == 0) {
            n /= 2;
        } else {
            n -= 1;
            answer += 1;
        }
    }

    return answer;
}

너무 간단해보이는 코드와 그렇지 못한 나의 이해력,,,
dp 문제는 저렇게 푸는구나 또 감탄만 하고 있는거 같다ㅠㅠ

이전에는 문제에 보이는 대로 접근하면 됐었는데
난이도가 올라갈수록 그러면 안된다는게 팍팍 느껴진다
자료구조, 알고리즘 책 다시 꼼꼼하게 봐야겠다..............🔥

profile
Frontend Engineer & Value Creator

0개의 댓글