[알고리즘문제풀기] 이진수 더하기

silver's avatar
Jan 02, 2026
[알고리즘문제풀기] 이진수 더하기

문제

내가 작성한 정답

class Solution { public String solution(String bin1, String bin2) { return Integer.toBinaryString(Integer.parseInt(bin1,2)+Integer.parseInt(bin2,2)); } }

다른 사람들의 정답

class Solution { public String solution(String bin1, String bin2) { String answer = ""; long num1 = 0, num2 = 0, sum = 0; long cnt = 1; for (int i = bin1.length() - 1; i >= 0; i--) { num1 += Long.parseLong(bin1.charAt(i) + "") * cnt; cnt *= 2; } cnt = 1; for (int i = bin2.length() - 1; i >= 0; i--) { num2 += Long.parseLong(bin2.charAt(i) + "") * cnt; cnt *= 2; } sum = num1 + num2; while (sum >= 1) { answer = sum % 2 + answer; sum /= 2; } return (answer == "" ? answer = "0" : answer); } } import java.math.BigInteger; class Solution { public String solution(String bin1, String bin2) { String answer = ""; BigInteger bin1Binary = new BigInteger(bin1, 2); BigInteger bin2Binary = new BigInteger(bin2, 2); int num = (bin1Binary.add(bin2Binary)).intValue(); return Integer.toBinaryString(num); } } class Solution { public String solution(String bin1, String bin2) { StringBuilder answer = new StringBuilder(); int i = bin1.length() - 1; int j = bin2.length() - 1; int carry = 0; while (i >= 0 || j >= 0 || carry > 0) { int sum = carry; if (i >= 0) sum += bin1.charAt(i--) - '0'; if (j >= 0) sum += bin2.charAt(j--) - '0'; answer.append(sum % 2); // 현재 자리수 carry = sum / 2; // 다음 자리로 넘어갈 값 } return answer.reverse().toString(); // 뒤집어서 반환 } }
Share article

silver