[leetcode] add binary

최대 1 분 소요

업데이트:

문제



문제해결 과정

  • 이진수 두개를 덧셈하는 문제다.
  • 뒷자리부터 덧셈하고, 덧셈하면서 올림수를 잘 생각하면 어렵지 않게 해결할 수 있는 문제이다.



코드

class Solution {
public:
    string addBinary(string a, string b) {
        
        int a_size=a.size(),b_size=b.size();
        
        if (a_size>b_size) {
            int diff=a_size-b_size;
            while(diff--) b='0'+b;
        } else {
            int diff=b_size-a_size;
            while(diff--) a='0'+a;
        }
        string ret="";
        int t_size=a.size();
        int carry=0;
        for (int i=t_size-1;i>=0;i--) {
            int a_val=a[i]-'0',b_val=b[i]-'0';
            int val=a_val+b_val+carry;
            if (val>=2) carry=1;
            else carry=0;
            string str_val=to_string(val%2);
            ret=str_val+ret;
        }
        if (carry>=1) ret=to_string(carry)+ret;
        return ret;
    }
};



결과

댓글남기기