class Solution {
public String solution(String bin1, String bin2) {
int bin1Int = Integer.parseInt(bin1, 2);
int bin2Int = Integer.parseInt(bin2, 2);
return Integer.toBinaryString(addBinary(bin1Int, bin2Int));
}
static int addBinary(int a, int b) {
if (b == 0) return a;
int sum = a^b;
int carry = (a&b) << 1;
return addBinary(sum, carry);
}
}
이진수를 연산한다고 하면 자연스럽게 비트연산이 떠올라서 비트연산으로 구현했는데 사실 Integer.toBinaryString()
를 이용해서 10진수로 바꾸어 더한 뒤 2진수로 변경하여 출력해도 됬었다 😳
그래도 비트연산으로 어떻게 덧셈을 구현해야할지 알게됬으니 좋은거겠지