이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.
제한사항
- return 값은 이진수를 의미하는 문자열입니다.
- 1 ≤ bin1, bin2의 길이 ≤ 10
- bin1과 bin2는 0과 1로만 이루어져 있습니다.
- bin1과 bin2는 "0"을 제외하고 0으로 시작하지 않습니다.
입출력 예
bin1bin2result
"10" | "11" | "101" |
"1001" | "1111" | "11000" |
입출력 예 설명
입출력 예 #1
- 10 + 11 = 101 이므로 "101" 을 return합니다.
입출력 예 #2
- 1001 + 1111 = 11000 이므로 "11000"을 return합니다.
class Solution {
public String solution(String bin1, String bin2) {
return Integer.toString(Integer.parseInt(bin1, 2) + Integer.parseInt(bin2, 2),2);
}
}
Integer.parseInt(bin1, 2) 가 2진수로된 String을 10진수로바꾸는거고
Integer.toString(16,2) 가 16을 2진수 String으로 바꾸는것.
class Solution {
public String solution(String bin1, String bin2) {
return Integer.toBinaryString(Integer.parseInt(bin1, 2) + Integer.parseInt(bin2, 2));
}
}
Integer.toBinaryString(16) 하면 16을 2진수String으로 바꿔줌
class Solution {
public String solution(String bin1, String bin2) {
String answer = "";
int n = 1;
int one = 0;
int two = 0;
char[] oneArr = bin1.toCharArray();
char[] twoArr = bin2.toCharArray();
for(int i = bin1.length()-1; i >= 0; i-- ) {
one += (oneArr[i]-'0') * n;
n *= 2;
}
n = 1;
for(int j = bin2.length()-1; j >= 0; j-- ) {
two += (twoArr[j]-'0') * n;
n *= 2;
}
return Integer.toBinaryString(two+one);
}
}
이진수를 십진수로 직접 바꿔주는방법이다.
출처:프로그래머스
'Java > Java 프로그래머스' 카테고리의 다른 글
공던지기( 배열에서 한칸 띄고 이동) (0) | 2022.11.17 |
---|---|
진료 순서 정하기 (0) | 2022.11.16 |
한번만 등장한 문자 (0) | 2022.11.15 |
가까운수 (배열에서 가장 가까운 수 찾기) (0) | 2022.11.15 |
2차원으로 만들기(2차원배열 만들기) (0) | 2022.11.15 |