inblog logo
|
silver
    알고리즘문제풀기

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

    silver's avatar
    silver
    Jan 02, 2026
    [알고리즘문제풀기] 이진수 더하기
    Contents
    문제내가 작성한 정답다른 사람들의 정답

    문제

    school.programmers.co.kr
    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)); } }

    다른 사람들의 정답

    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

    RSS·Powered by Inblog