[프로그래머스] 이진수 더하기

Walter Mitty·2022년 11월 21일
0

Algorithm

목록 보기
26/29
post-thumbnail

문제 설명
이진수를 의미하는 두 개의 문자열 bin1bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.


제한사항
return 값은 이진수를 의미하는 문자열입니다.
1 ≤ bin1, bin2의 길이 ≤ 10
bin1bin2는 0과 1로만 이루어져 있습니다.
bin1bin2는 "0"을 제외하고 0으로 시작하지 않습니다.


입출력 예

bin1bin2result
"10""11""101"
"1001""1111""11000"

입출력 예 설명
입출력 예 #1

  • 10 + 11 = 101 이므로 "101" 을 return합니다.

입출력 예 #2

  • 1001 + 1111 = 11000 이므로 "11000"을 return합니다.

풀이 방식 하드코딩실패 ⇨ 함수 발견해서 이용해서 품

class Solution {
    public String solution(String bin1, String bin2) {
        String answer = "";
        int num1 = Integer.parseInt(bin1, 2);
        int num2 = Integer.parseInt(bin2, 2);
        int res = num1+num2;
        answer = Integer.toBinaryString(res);
        return answer;
    }
}

처음에 하드코딩하려다가 도저히 안되겠어서 java 10진수 2진수 변환 키워드로 구글링하다가 발견한 함수!

  • java.lang 패키지의 Integer 클래스

1) parseInt(String s, int radix)
나는 그 전까지 parseInt를 단순 String 타입을 int 값으로 parse해주는 건줄 알았는데 parseInt(String 문자열, int 진수) 을 넣어주면 진수인 문자열 값을 10진수 int타입으로 반환해준다.

나같은 경우는 2진수인 s 니까, Integer.parseInt(bin, 2)로 적어줬다.


2) toBinaryString(int i)
10진수 → 2진수로 바꾸어 String 타입으로 반환한다.
나는 일단 정수 변수인 res에 2진수 값을 10진수로 변환된 두 값의 합을 대입시켜놨고, 그 값을 Integer.toBinaryString(res) 로 넣어주어 String(2진수res)가 반환되게 했다.

참고자료: 10진수 <-> 2진수 변환

0개의 댓글