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

쿼카쿼카·2023년 2월 15일
0

알고리즘

목록 보기
32/67

코드

function solution(n) {
    let ans = 0;

    while(n !== 1) {
        if(n%2 === 1) {
            n--;
            ans++;
        }
        else {
            n = n/2;
        }
    }

    return ++ans;
}

// 2로 나눈 모든 나머지는 2진수로 변환한 값의 1 갯수와 같다.
function solution(n)
{
    return n.toString(2).match(/1/g).length
}

내 풀이

  • 구하려는 수가 짝수면 2로 나누고, 홀수면 -1을 하고 건전지 소모
  • 1까지 오면 ans에 1을 더해 출력

미친 2진수 풀이

  • 결국 우리는 계속 2로 나누는 동작을 반복한다!!
  • 그럼 2진수로 나누고 나머지가 1이 나오는 애들의 길이가 정답이겠네요??!?!?!
  • n.toString(2)로 이진수로 만든 뒤 1의 갯수를 세버린다....
  • 진짜 미친 사람인가?
profile
쿼카에요

0개의 댓글