Study with me/프로그래머스 L0 마스터하기
프로그래머스 - L0 이진수더하기
외계나무
2024. 4. 10. 15:10
Integer.parseInt() 기능을 까맣게 잊고 있다가 검색의 도움을 받았다.
그렇다.. public static int parseInt(String s, int radix) 였던 것이다...
class Solution {
public String solution(String bin1, String bin2) {
String answer = "";
int a = Integer.parseInt(bin1, 2);
int b = Integer.parseInt(bin2, 2);
int c = a+b;
while(true) {
if(c==1) {
answer = 1 + answer;
break;
}
answer = (c%2) + answer;
c /= 2;
}
return answer;
}
}
여튼 그 이후에는 다시 10진수 -> 2진수 메서드가 기억나지 않아서 그냥 정석대로 풀었다.
근데 테스트 케이스 5에서 시간이 너무 오래걸리더니 시간 초과 실패가 떴다. 왜일까...
class Solution {
public String solution(String bin1, String bin2) {
String answer = "";
int a = Integer.parseInt(bin1, 2);
int b = Integer.parseInt(bin2, 2);
int c = a+b;
if(c==0) return "0";
while(true) {
if(c==1) {
answer = 1 + answer;
break;
}
answer = (c%2) + answer;
c /= 2;
}
return answer;
}
}
응~ 0 포함~ 0도 있을 수 있음~~~~ 에라이.
한 줄 짜리 코드도 있길래 가져와 봄. toString도 진법을 파라미터로 줄 수 있는 모양... Integer 클래스의 메서드들은 진법 변환이 되는지 확인부터 해보고 써야겠네.
return Integer.toString(Integer.parseInt(bin1, 2) + Integer.parseInt(bin2, 2), 2);