Post

[Programmers] #120885 - 이진수 더하기 [Java][C++][Python]

[Programmers] #120885 - 이진수 더하기 [Java][C++][Python]

문제 링크


1. 아이디어

이진수를 문자열의 형태로 줬을 때, 두 이진수의 합을 구하는 문제로 문자열을 이진수로 입력 받는 표준 라이브러리를 활용하면 간단하게 해결할 수 있다.


2. 복잡도

접근시간공간
풀이$O(N)$$O(N)$

($N$ = bin1, bin2 중 더 긴 문자열의 길이)


3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
class Solution {
    public String solution(String bin1, String bin2) {
        int x1 = Integer.parseInt(bin1, 2);
        int x2 = Integer.parseInt(bin2, 2);
        return Integer.toBinaryString(x1 + x2);
    }
}

Integer.parseInt는 두 번째 파라미터로 진법을 지정할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>
using namespace std;

string solution(string bin1, string bin2) {
    int sum = stoi(bin1, 0, 2) + stoi(bin2, 0, 2);
    if (sum == 0) return "0";

    string ans;
    while (sum > 0) {
        ans += '0' + sum % 2;
        sum /= 2;
    }
    reverse(ans.begin(), ans.end());

    return ans;
}

std::stoi 함수로 이진수로 입력 받았다.

1
2
def solution(bin1, bin2):
    return format(int(bin1, 2) + int(bin2, 2), "b")

int 함수로 이진수로 입력을 받고 format으로 이진수로 출력했다.


This post is licensed under CC BY 4.0 by the author.