티스토리 뷰

 

이번 문제는 검색을 통해 알아본 방법과 문자열을 순차적으로 확인하는 방법을 알아보자.

 


1. Convert

using System;

public class Solution {
    public string solution(string bin1, string bin2) =>
        Convert.ToString(Convert.ToInt32(bin1, 2) + Convert.ToInt32(bin2, 2), 2);
}

 

먼저 Convert 방법은 굉장히 간단하고 속도도 빨랐다.

Convert클래스를 사용할 일이 많이 없어서 몰랐지만 매개변수를 추가적으로 주어 이진수로 변경할 수 있었다.

Convert 동작 자체가 굉장히 느릴 것이라는 나의 편견과 달리 속도도 굉장히 빠르게 처리되었다.

 

 


2. 문자 비교

using System;

public class Solution {
    public string solution(string bin1, string bin2) {
        return BinarySum(bin1, bin2);
    }
    
    public string BinarySum(string binary1, string binary2)
    {
        int maxLength = Math.Max(binary1.Length, binary2.Length);
        int carry = 0;
        string result = "";

        for (int i = 0; i < maxLength; i++)
        {
            int bit1 = (i < binary1.Length) ? binary1[binary1.Length - 1 - i] - '0' : 0;
            int bit2 = (i < binary2.Length) ? binary2[binary2.Length - 1 - i] - '0' : 0;

            int sum = bit1 + bit2 + carry;
            int bit = sum % 2;
            carry = sum / 2;

            result = bit.ToString() + result;
        }

        if (carry > 0)
            result = carry.ToString() + result;

        return result;
    }
}

 

두번째 방법은 각 문자를 변환하여 이진수 덧셈을 하는 경우이다.

이 방법 또한 굉장히 신선했다.

최근에 올라온 글
최근에 달린 댓글
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함