728x90
두 정수 A와 B를 이진수로 표현했을 때, A를 B로 바꾸기 위해 뒤집어야 하는 비트의 개수를 구하는 문제를 해결하기 위해서는 XOR 연산을 활용할 수 있습니다.
XOR 연산은 두 비트가 다를 때 1을 반환하고, 같을 때 0을 반환합니다. 두 정수 A와 B를 XOR 연산한 결과를 이진수로 표현하면, A와 B의 이진수 표현에서 서로 다른 비트들이 1로 표시됩니다. 그리고 이 1의 개수가 A를 B로 바꾸기 위해 뒤집어야 하는 비트의 개수가 됩니다
class Solution {
public int solution(int A, int B) {
int xorResult = A ^ B;
int count = 0;
// XOR 결과에서 1의 개수를 세기
while (xorResult > 0) {
if ((xorResult & 1) == 1) {
count++;
}
xorResult >>= 1;
}
return count;
}
public static void main(String[] args) {
Solution solution = new Solution();
int A = 29; // 이진수: 11101
int B = 15; // 이진수: 01111
int result = solution.solution(A, B);
System.out.println(result); // 출력 결과: 2 (뒤집어야 하는 비트 개수)
}
}
728x90
'하지의 코딩일지 > JAVA TEST' 카테고리의 다른 글
요세푸스 문제 (1) | 2023.07.30 |
---|---|
계산 순서에 따라 계산하기 테스트 (0) | 2023.07.30 |
자바 후보자 투표 가상시뮬레이션 테스트 (0) | 2023.07.08 |
달력 생성기 (테스트) (0) | 2023.07.07 |
놀이공원 입장권 계산(테스트) (0) | 2023.07.07 |