C++ Algorithm & Study/C++ & Algorithm Strategies

[Programmers] 점프와 순간 이동

GameChoi 2023. 1. 9. 21:23

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

0. Headers

-

 

1. 알고리즘

 - 한번에 K칸을 앞으로 점프하거나 현재까지온 거리를 2배만큼 순간이동을 할 수 있는 슈트

   - 건전지 사용량을 줄이기 위해서라면 전체 값에서 반씩 줄이면서 값이 만약 홀수이면 건전지를 사용

   - 홀수에서 건전지를 사용하는 이유

     - 처음에서 부터 시작하면 규칙을 찾기 힘듦

     - 반대로 생각을 해본다면 5000 2500 1250 625 312 156 78 39 19 9 4 2 1 0

       - 홀수인 경우만 1씩 더한다고 한다면 배터리를 최소한으로 사용할 수있다

int solution(int n)
{
    int ans = 0;
    while (n > 0) { if ((n % 2) == 1) ans++; n = n/2; }
    return ans;
}

2. 완성 코드

int solution(int n)
{
    int ans = 0;
    while (n > 0) { if ((n % 2) == 1) ans++; n = n/2; }
    return ans;
}