Leetcode : Addbinary

데린이·2022년 1월 10일
0

leetcode

목록 보기
2/3

Problem

Given two binary strings a and b, return their sum as a binary string.

  • difficulty : easy

My answer_1 (2022-01-10)

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:])
  • status : accepted
  • Runtime : 30ms
  • Memory usage : 13.4MB
  • Time complexity : O(max(m,n))O(\mathrm{max}(m,n))
  • Space complexity : O(m+n+max(m,n))O(m+n+\mathrm{max}(m,n))

문제 풀이 : "뒷자리부터 계산"

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을 정수로 변환
 	실수를 정수로 변환할 때도 사용 가능 
        

발전사항

없음-

profile
취뽀를 기원하는 취준생입니다!

0개의 댓글