class Solution {
    public String solution(String bin1, String bin2) {
        int decimal1 = 0; // 첫 번째 이진수의 10진수 값
        int decimal2 = 0; // 두 번째 이진수의 10진수 값
        int power1 = 0; // 첫 번째 이진수 자릿수의 2의 거듭제곱 값
        int power2 = 0; // 두 번째 이진수 자릿수의 2의 거듭제곱 값

        // 첫 번째 이진수의 각 자릿수를 거꾸로 순회하며 10진수 값(decimal1)을 계산
        for (int i = bin1.length() - 1; i >= 0; i--) {
            int digit = bin1.charAt(i) - '0'; // 문자를 숫자로 변환
            decimal1 += digit * Math.pow(2, power1); // 2의 거듭제곱 값과 곱한 후 10진수 값을 더함
            power1++; // 다음 자릿수의 2의 거듭제곱 값 계산을 위해 1 증가
        }

        // 두 번째 이진수의 각 자릿수를 거꾸로 순회하며 10진수 값(decimal2)을 계산합니다.
        for (int i = bin2.length() - 1; i >= 0; i--) {
            int digit = bin2.charAt(i) - '0'; // 문자를 숫자로 변환
            decimal2 += digit * Math.pow(2, power2); // 2의 거듭제곱 값과 곱한 후 10진수 값을 더함
            power2++; // 다음 자릿수의 2의 거듭제곱 값 계산을 위해 1 증가
        }

        // 계산된 10진수 값들(decimal1 + decimal2)을 더한 후, 이진수 문자열(binary)로 변환하여 반환
        String binary = Integer.toBinaryString(decimal1 + decimal2);
        return binary;
    }
}
profile
I'm still hungry.

0개의 댓글