PS/LeetCode

[LeetCode] Add Binary (JAVA)

제이온 (Jayon) 2021. 11. 2.

문제

Given two binary strings a and b, return their sum as a binary string.

 

입출력 및 제약 사항

 

풀이

2진수 연산 문제였습니다. 문자열의 길이가 굉장히 짧았다면, Integer.parseInt(s, redix) 메소드와 Integer.toBinaryString(i) 메소드를 사용하여 풀 수 있었을 것입니다. 하지만, 문자열의 길이가 최대 1만이므로 당연히 int와 long 범위를 가볍게 초과하게 됩니다. 그래서 문자열과 문자열을 비교하면서 2진수 연산을 차례 차례 수행하는 것이 문제의 의도였겠으나, Java의 BigInteger 자료형을 사용하면 무한대까지도 표현이 가능합니다.

 

풀이는 소스코드만 봐도 이해가 될 정도입니다. 초기화 과정에서 해당 문자열이 2진수 숫자임을 명시하여 10진수로 변환된 BigInteger를 생성한 뒤, 10진수 BigInteger끼리 덧셈하고 최종적으로 2진수 문자열로 반환하면 끝입니다.

 

소스코드

import java.math.BigInteger;

class Solution {
    public String addBinary(String a, String b) {
        BigInteger bigIntegerA = new BigInteger(a, 2);
        BigInteger bigIntegerB = new BigInteger(b, 2);
        return bigIntegerA.add(bigIntegerB).toString(2);
    }
}

 

'PS > LeetCode' 카테고리의 다른 글

[LeetCode] Backspace String Compare (JAVA)  (0) 2021.11.10
[LeetCode] Reshape the Matrix (JAVA)  (0) 2021.11.08
[LeetCode] Move Zeroes (JAVA)  (0) 2021.10.20
[LeetCode] Squares of a Sorted Array (JAVA)  (0) 2021.10.19
[LeetCode] Rotate Array (JAVA)  (0) 2021.10.19

댓글

추천 글