[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.