반응형
문제
주어진 2진수 문자열 a, b의 합을 2진수 문자열로 리턴.
예시
Example 1:
Input: a = "11", b = "1"
Output: "100"
Example 2:
Input: a = "1010", b = "1011"
Output: "10101"
답안
class Solution {
public String addBinary(String a, String b) {
StringBuilder sb = new StringBuilder();
int i = a.length() - 1;
int j = b.length() -1;
int sum = 0;
while (i >= 0 || j >= 0) {
if (j >= 0) sum += b.charAt(j--) - '0';
if (i >= 0) sum += a.charAt(i--) - '0';
sb.append(sum % 2);
sum /= 2;
}
if(sum == 1) sb.append(sum);
return sb.reverse().toString();
}
}
char - '0' 를 통해 char 타입을 int 타입으로 변환할 수 있다.
반응형
'Programming > 알고리즘 공부' 카테고리의 다른 글
[Data Structure] 재귀함수를 활용한 피보나치 수열 구현 (0) | 2024.04.07 |
---|---|
[Programmers] 위클리 챌린지 | 1주차_부족한 금액 계산하기 (0) | 2021.09.25 |
[LeetCode] Plus One | 난이도: Easy (0) | 2021.09.12 |
[CodeUp] 정수 1개 입력받아 나누어 출력하기 (0) | 2021.09.05 |
[LeetCode] Length of Last Word | 난이도: Easy (0) | 2021.08.20 |