LeetCode) 67. Add Binary_2

지난 번에 2진수 -> 10진수 변환 후, 더하고, 10진수 -> 2진수로 변환하는 방법은 틀린 것이라는 글을 보았다.
이유는, 자료형의 범위때문에 잘못된 값이 출력되기 때문이라고 ...

그래서 다들 StringBuilder를 사용하면서 푸는 것을 확인했다.

다른 사람 코드

>Language: java

class Solution {
    public String addBinary(String a, String b) {
        int aIdx = a.length() - 1;
        int bIdx = b.length() - 1;

        int sum = 0;
        StringBuilder sb = new StringBuilder();

        while (aIdx >= 0 || bIdx >= 0) {
            if (aIdx >= 0) sum += a.charAt(aIdx--) - '0';
            if (bIdx >= 0) sum += b.charAt(bIdx--) - '0';

            sb.append(sum % 2);
            sum /= 2;
        }

        if (sum == 1) sb.append(sum);
        return sb.reverse().toString();
    }
}

StringBuffer와 StringBuilder는 매우 긴 String에 많은 String연산을 매우 반복해야하는 경우에 쓰인다고 한다. 이와 관련한 내용은 따로 정리하는 것으로 한다.
그리고 몰랐던 함수들도 알아가는 문제가 되었다. 다음에 다시 한 번 풀어봐야겠음.

좋은 웹페이지 즐겨찾기