이진수의 합을 구하는 문제.
내가 처음 푼 코드
class Solution {
public String addBinary(String a, String b) {
int newA = 0, newB = 0;
newA = transTen(a);
newB = transTen(b);
String newC = Integer.toBinaryString((newA+newB));
return newC;
}
//2진수 -> 10진수
public int transTen(String origin) {
int originInt = Integer.parseInt(origin);
int newNum = 0;
int count = 0;
for(int i = 0; i < origin.length(); i++) {
newNum += squared(originInt % 10, count++);
originInt /= 10;
}
return newNum;
}
//2를 제곱하는 함수
public int squared(int target, int count) {
for(int i = 0; i < count; i++) {
target *= 2;
}
return target;
}
}
10진수 → 2진수로 바꾸는 법을 도저히 몰라서 구글링 했더니,
Integer.toBinaryString(10진수 변수)
라는 아주 좋은 ... 메서드를 발견하고 말았다. => 10진수 → 2진수 문제 해결
어찌저찌 run은 되는데, 최종적으로 runTime 오류가 떴다.
int originInt = Integer.parseInt(origin);
여기서 변환되는 시간이 오래 걸렸기 때문인걸까... ㅠㅠㅠ
결국 2진수 → 10진수도 메서드를 써서 해결하는 수밖에 없을 듯 하다.