정렬된 bit 수열 > 문제은행



실전대비 Level7

1629 : 정렬된 bit 수열

제한시간: 1000 ms    메모리제한: 64 MB
해결횟수: 3 회    시도횟수: 8 회   



컴퓨터상에서 정수의 표현은 비트(2진수)로 표현 할 수 있다. 

예를 들어 32비트로 6을 표현하면 다음과 같다.

0000 0000 0000 0000 0000 0000 0000 0110

 

그리고 -6을 표현하면 다음과 같으며,

1111 1111 1111 1111 1111 1111 1111 1010

 

이 둘을 더한 식과 결과를 나타내면 아래와 같다.

 

 07f1ee470c4ca420b78cf86b19196679_1450333

 

32비트로 표현되는 m이상 n이하의 숫자가 있다. (m≤i≤n; m x n≥0, -231≤m≤n≤231-1).

m이상 n이하의 숫자를 비트로 표현했을 경우 1의 숫자가 적은 순서대로 정렬을 하고자 한다. 

만약 1의 개수가 같을 경우 작은 숫자가 우선으로 나오도록 한다. 

만약 m = 0이고 n = 5가 되면 다음과 같이 정렬된다.

 

 07f1ee470c4ca420b78cf86b19196679_1450333

 

m = -5 이고 n = -2 일 경우는 다음과 같다.

6429475819bb89314b5e71dc5f5ffac4_1496209
 

m, n과 k가 주어졌을 때(1≤k≤min(n-m+1,2147473547)) 

위의 방식대로 정렬 했을 경우의 숫자 중 k번째로 나타나는 숫자를 출력하라.




입력은 한 줄에 m과 n 그리고 k가 입력된다.




입력에 대해 k번째로 나타나는 숫자를 출력한다.



0 5 3
2


-5 -2 2
-5






HancomEducation E-mail : hancomc@hotmail.com, comkiwer@naver.com Tel : 031-388-0999 FAX : 031-388-0996 정올소개 이용약관 개인정보처리방침
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호, 경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호
Copyright@2010-2015 jungol. All right reserved.