X와 K
면접 대비시간 제한2초메모리 제한128 MB
X와 K가 주어질 때 X+Y가 X OR Y와 같아지는 양의 정수 Y 중 K번째로 작은 값을 구하는 문제로, K의 비트를 X의 0비트 위치에 채우는 방식으로 해결합니다.
문제
두 자연수 X와 K가 주어진다. 다음 식을 만족하는 자연수 Y들을 오름차순으로 나열했을 때, K번째로 작은 Y를 구하라.
X + Y = X | Y
여기서 |는 비트 OR 연산이다.
입력
첫째 줄에 두 자연수 X와 K가 공백으로 구분되어 주어진다.
X와 K는 각각 2,000,000,000 이하이다.
출력
식 X + Y = X | Y를 만족하는 자연수 Y 중에서 K번째로 작은 값을 출력한다.
정답은 2^31 - 1보다 클 수 있다.