Post

[Summer/Winter Coding(~2018)] 점프와 순간 이동 (C++)

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

풀이

n을 0까지 줄여나가는 방식으로 접근했다. n이 짝수면 순간이동한 것으로 여겨 2로 나눠주고, 홀수면 점프한 것으로 여겨 1을 빼주었다.

다른 사람의 풀이를 보면 의외로 bit를 이용해 푸는 사람들이 많았다! 한 번 참고해봐야겠다.

코드

1
2
3
4
5
6
7
8
9
10
using namespace std;

int solution(int n){
    int cnt = 0;
    while(n > 0){
        if(n % 2 == 0)  n /= 2;
        else    n--,    cnt++;
    }
    return cnt;
}
This post is licensed under CC BY 4.0 by the author.