JAVA_LeetCode 371_Sum of Two Integers 풀이 class Solution { public int getSum(int a, int b) { if(a == 0) return b; // 비트별 합 계산이 0이면 올림 값을 반환 if(b == 0) return a; // 올림 값이 0이면 합계 그대로 반환 int sum = a ^ b; // XOR로 올림 없이 비트별 합 계산(^: 서로 다른 비트만 1) int carry = (a & b) << 1; // AND로 올림 비트 계산 후 왼쪽 시프트 (<< 1: 다음 자리로 이동) return getSum(sum, carry); // carry가 0될 때까지 진행 } } 비트 연산으로 올림, 합계 계산(덧셈, 뺄셈 연산자 미사용) 뺄셈, 덧셈을 쓰지 않고 풀어야하는 문제 xor으로 sum값을 구하고, &로 올림 비트 계산 후 왼쪽 시프트를 하여 올림 값을 초기화한다. 재귀로 sum값과 올림값을 파라미터로 넣고 돌린다....