https://school.programmers.co.kr/learn/courses/30/lessons/120885
몰랐다 이렇게 풀 수 있는 줄...
class Solution {
public String solution(String bin1, String bin2) {
return Integer.toBinaryString(Integer.parseInt(bin1, 2) + Integer.parseInt(bin2, 2));
}
}
String을 Integer로 형변환 한 뒤 계산해서 그걸 이진수로 바로 바꿀 수가 있구나...
위가 더 맞다고 생각하지만 아래처럼도 가능하다.
class Solution {
public String solution(String bin1, String bin2) {
return Integer.toString(Integer.parseInt(bin1, 2) + Integer.parseInt(bin2, 2),2);
}
}
나는...
class Solution {
public String solution(String bin1, String bin2) {
StringBuilder sb = new StringBuilder();
int elementLength = 0;
if(bin1.length() - bin2.length() >= 0) {
elementLength = bin1.length();
while (bin2.length() < bin1.length()) bin2 = "0" + bin2;
} else {
elementLength = bin2.length();
while (bin1.length() < bin2.length()) bin1 = "0" + bin1;
}
int remainder = 0;
for(int i=elementLength-1; i>=0; i--) {
int target = (bin1.charAt(i)-'0')+(bin2.charAt(i)-'0')+remainder;
if(target == 3) {
sb.append(1);
remainder = 1;
} else if(target == 2) {
sb.append(0);
remainder = 1;
} else {
sb.append(target);
remainder = 0;
}
}
if(remainder == 1) sb.append(1);
return sb.reverse().toString();
}
}
이렇게 풀었다...
'코딩테스트 연습' 카테고리의 다른 글
부족한 금액 계산하기 (0) | 2024.05.05 |
---|---|
컨트롤 제트 (0) | 2024.05.05 |
문자열 내림차순으로 배치하기 (0) | 2024.05.04 |
제일 작은 수 제거하기 (0) | 2024.05.04 |
가운데 글자 가져오기 (0) | 2024.05.04 |