(Binary, Medium) Sum of Two Integers

송재호·2025년 2월 10일
0

https://leetcode.com/problems/sum-of-two-integers/description/

비트연산자가 익숙하지는 않아 솔루션 참고한다.

Carry값을 찾으려면 AND 연산을 하면 되고
XOR 연산을 하면 캐리 고려하지 않고 합계를 계산할 수 있다고 한다.

캐리를 찾았으면 시프트연산해서 자릿수를 올려주고
더이상 캐리가 존재하지 않을 때까지 반복해주면 덧셈을 할 수 있다.

class Solution {
    public int getSum(int a, int b) {
        while (b != 0) {
            int carry = a & b;
            a = a ^ b;
            b = carry << 1;
        }
        return a;
    }
}
profile
식지 않는 감자

0개의 댓글

관련 채용 정보