코딩테스트연습/[프로그래머스] Java

[프로그래머스] Java 코딩테스트 연습 - 이진수 더하기

_꼬마돌 2023. 8. 12. 23:42
반응형

[프로그래머스] Java 코딩테스트 연습 -

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120885

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

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

 

풀이

Integer.parseInt() 메서드가 String을 int로 변환할 때 사용하는 건 줄 알았는데 진수로 표현된 문자열을 정수로 변환할 때도 쓰인 다는 걸 처음 알았다.Integer.parseInt(x, y)의 형태로 사용하는데, x는 변환하려는 문자열(String), y는 해당 문자열이 어떤 진법(진수)로 표현되어 있는지를 나타낸다. 단, x는 y에 지정한 진법에 맞춰서 표현된 진수 문자열이여야 한다. 
문제에서 bin1과 bin2는 2진수 문자열이므로 y자리에 2를 넣어줬다. 2진수 문자열을 각각 정수로 변환한 뒤 더해주고, Integer.toBinaryString()메서드로 더한 값을 다시 2진수 문자열로 변환한 뒤 return헀다.

 

소스코드

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

 

반응형