문제 설명
이진수를 의미하는 두 개의 문자열 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
입출력 예 #2
풀이 방식 하드코딩실패 ⇨ 함수 발견해서 이용해서 품
class Solution {
public String solution(String bin1, String bin2) {
String answer = "";
int num1 = Integer.parseInt(bin1, 2);
int num2 = Integer.parseInt(bin2, 2);
int res = num1+num2;
answer = Integer.toBinaryString(res);
return answer;
}
}
처음에 하드코딩하려다가 도저히 안되겠어서 java 10진수 2진수 변환 키워드로 구글링하다가 발견한 함수!
1) parseInt(String s, int radix)
나는 그 전까지 parseInt를 단순 String 타입을 int 값으로 parse해주는 건줄 알았는데 parseInt(String 문자열, int 진수) 을 넣어주면 진수인 문자열 값을 10진수 int타입으로 반환해준다.
나같은 경우는 2진수인 s 니까, Integer.parseInt(bin, 2)로 적어줬다.
2) toBinaryString(int i)
10진수 → 2진수로 바꾸어 String 타입으로 반환한다.
나는 일단 정수 변수인 res에 2진수 값을 10진수로 변환된 두 값의 합을 대입시켜놨고, 그 값을 Integer.toBinaryString(res) 로 넣어주어 String(2진수res)가 반환되게 했다.
참고자료: 10진수 <-> 2진수 변환