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 |