728x90
- 문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/120885
입력 받은 두 이진수 문자열의 합을 구하는 문제이다.
1) 이진수 문자열을 숫자로 변환
2) 두 숫자의 합 계산
3) 계산된 합을 이진수 문자열로 변환
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
int binary_to_decimal(string str) {
int answer = 0;
int n = 0;
for (int idx = str.length() - 1; idx >= 0; idx--)
{
if (str[idx] == '1')
answer += pow(2, n);
n++;
}
return answer;
}
string solution(string bin1, string bin2) {
int sum = binary_to_decimal(bin1) + binary_to_decimal(bin2);
if (sum == 0) return "0";
string answer = "";
while (sum > 0)
{
answer += to_string(sum % 2);
sum /= 2;
}
reverse(answer.begin(), answer.end());
return answer;
}
728x90
'Algorithm > Programers' 카테고리의 다른 글
영어가 싫어요 (0) | 2023.06.24 |
---|---|
등수 매기기 (0) | 2023.06.24 |
수 조작하기 1 (0) | 2023.06.24 |
공배수 (0) | 2023.06.24 |
한 번만 등장한 문자 (0) | 2023.06.20 |
댓글