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 문제는 저렇게 푸는구나 또 감탄만 하고 있는거 같다ㅠㅠ
이전에는 문제에 보이는 대로 접근하면 됐었는데
난이도가 올라갈수록 그러면 안된다는게 팍팍 느껴진다
자료구조, 알고리즘 책 다시 꼼꼼하게 봐야겠다..............🔥