Given two binary strings a and b, return their sum as a binary string.
class Solution(object):
def addBinary(self, a , b) :
length = max(len(a),len(b))
afill = a.zfill(length)
bfill = b.zfill(length)
sum = list('0'.zfill(length+1))
upper = 0
for i in range(length):
sub_sum = int(afill[-(i+1)]) + int(bfill[-(i+1)]) + upper
upper = 1 if sub_sum >= 2 else 0
if sub_sum%2 == 1:
sum[-(i+1)] ='1'
if upper == 1:
sum[0] = '1'
return ''.join(sum)
else:
return ''.join(sum[1:])
1. input 길이를 동일하게 맞춘다.
2. input을 뒤에서부터 계산하고, 올림이 있는지 확인한다.
1. zfill : str.zfill(int)
int - len(str)만큼 str 앞에 '0'을 붙인다.
만약 위 식이 음수인 경우, 식의 값은 0으로 취급된다.
2. join : '구분자'.join(List[str])
List의 str들을 구분자로 구분하여 하나의 문자열로 합친다.
만약 구분자 없이 진행하고 싶을 경우, ''.join(List[str])로 진행하면 된다.
3. int: int(str/float)
str을 정수로 변환
실수를 정수로 변환할 때도 사용 가능
없음-