프로그래머스/비트

    [77885] 2개 이하로 다른 비트(C++)

    문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결 방법 f(1), f(2), f(3)... 이렇게 하나씩 구하다보면 규칙을 찾을 수 있는 문제 우선 x가 짝수인 경우 f(x)는 항상 x + 1이다. 그 이유는 x가 짝수이기 때문에 가장 마지막 비트가 0이고 따라서 이 자리만 1로 바꿔주면 f(x)가 되기 떄문이다. x가 홀수인 경우에도 규칙이 있다. 제일 낮은 자리의 비트부터 앞으로 탐색하면서 가장 처음으로 0이 나타나는 위치를 먼저 구하고, 이 위치는 1로 바꾸고 바로 오른쪽의 비트는 0으로 바꾸면 된다. 예를 들어, x = 7 = 111(2)인..