[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.