문제논리 : 주어진 문자열형식으로 주어진 두 이진수를 합한 이진수를 문자열형식으로 나타내어라
이진수 덧셈논리는 생각나지 않아 십진수 덧셈논리를 사용하기위해 십진수 변환 함수를 만들어 십진수로 변환하여 서로 더한 후 그 수를 다시 이진수 변환 함수에 넣어 return하였다. 주어진 문자열형식의 이진수로만 더할 수 있는 코드가 있을지는 모르겠다. 십진수 -> 이진수 변환논리는 2로 나누어 몫과 나머지를 활용하면 된다는 예전 학교 수업에서의 아이디어를 활용하였다.
def deci(bin): #deci from binary
list_tmp = list(bin)
max_len = len(list_tmp)
count = 0
for index, i in enumerate(list_tmp):
index = max_len-1-index
if i == '1':
count += 2**index
return count
def binary(dec): #binary from deci
list_ans = []
while dec != 0:
dec_share = dec // 2
input_dec = dec % 2
dec = dec_share
list_ans.append(str(input_dec))
list_ans.reverse()
if len(list_ans) == 0:
return '0'
list_ans = ''.join(list_ans)
return list_ans
def solution(bin1, bin2): #final solution
bin1_10 = deci(bin1)
bin2_10 = deci(bin2)
ans_10 = bin1_10 + bin2_10
return binary(ans_10)