클래스명은 대문자로 시작해야하고, 정답이라는 의미로 Solution이라는 단어를 사용하였습니다.
2. 문자열 bin1, bin2를 매개변수로 하는 solution 메소드를 선언합니다.
solution은 문자열을 반환하므로 데이터타입을 String으로 합니다.
● public String solution(String bin1, String bin2) {
3. Integer.parseInt 메소드를 이용하여 bin1을 십진법의 정수로 변환합니다.
이 때, 괄호안 2는 bin1이 이진법의 문자열임을 나타냅니다.
bin2 또한 같은 방식으로 정수로 변환합니다.
bin1과 bin2를 합친 값을 sum으로 정의합니다.
● int num1 = Integer.parseInt(bin1, 2); int num2 = Integer.parseInt(bin2, 2);
int sum = num1 + num2;
4. 최종적인 결과 result를 정의해주는데, Integer.toBinaryString 메소드를 이용해 sum을 이진법 문자열로 변환합니다.
Integer클래스를 이용하여 결과가 정수로 나오는 것으로 헷갈릴 수 있으나, 정수를 이용하여 이진법 문자열로 변환하여 결과값은 String이 되게 됩니다.
● String result = Integer.toBinaryString(sum);
return result; } }
4) 코드
class Solution {
public String solution(String bin1, String bin2) {
int num1 = Integer.parseInt(bin1, 2);
int num2 = Integer.parseInt(bin2, 2);
int sum = num1 + num2;
String result = Integer.toBinaryString(sum);
return result;
}
}
5) 느낀점
처음 문제 해결을 어떻게 할까 고민했을 때,
하나의 이진수를 정수로 변환하는 메소드를 만들고,
그 메소드를 이용해서 bin1, bin2 값을 계산하여 더해주는 식으로 진행하려고 했습니다.
그래서 이진수의 가장 첫째 자리부터 1인지 0인지 판단을 하고,
몇번째 자리인지 확인하여 해당 자릿수만큼 2를 반복해서 곱해주도록하여 값을 구해내도록하려 했습니다.
하지만 이렇게 할 경우, 코드가 상당히 길어졌습니다.
또한, 다시 문자열로 바꿔줘야하는 과정이 필요해서 이 해결방식은 효율적이지 않다고 생각했습니다.