728x90
반응형
SMALL

문제 설명

이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.


제한사항

  • return 값은 이진수를 의미하는 문자열입니다.
  • 1 ≤ bin1, bin2의 길이 ≤ 10
  • bin1과 bin2는 0과 1로만 이루어져 있습니다.
  • bin1과 bin2는 "0"을 제외하고 0으로 시작하지 않습니다.

입출력 예

bin1 bin2 result

"10" "11" "101"
"1001" "1111" "11000"

입출력 예 설명

입출력 예 #1

  • 10 + 11 = 101 이므로 "101" 을 return합니다.

입출력 예 #2

  • 1001 + 1111 = 11000 이므로 "11000"을 return합니다.
package Lv0;

import java.util.Scanner;

public class H120885 {
    public static String solution(String bin1, String bin2) {
        String answer = "";
        long num1 = 0, num2 = 0, sum = 0;

        long cnt = 1;
        for (int i = bin1.length() - 1; i >= 0; i--) {
            num1 += Long.parseLong(bin1.charAt(i) + "") * cnt;
            cnt *= 2;
        }

        cnt = 1;
        for (int i = bin2.length() - 1; i >= 0; i--) {
            num2 += Long.parseLong(bin2.charAt(i) + "") * cnt;
            cnt *= 2;
        }

        sum = num1 + num2;
        while (sum >= 1) {
            answer = sum % 2 + answer;
            sum /= 2;
        }

        return (answer == "" ? answer = "0" : answer);
    }

    public static void main(String[] args){
        String bin1 = "10";
        String bin2 = "11";
        System.out.println(solution(bin1, bin2));
    }
}

 

728x90
반응형
LIST

'알고리즘 > 프로그래머스 JAVA LV.0' 카테고리의 다른 글

공 던지기  (0) 2023.02.07
2차원으로 만들기  (0) 2023.02.06
편지  (0) 2023.02.04
2차원으로 만들기  (0) 2023.02.03
구슬을 나누는 경우의 수  (0) 2023.02.02

+ Recent posts