프로그래머스 이진수 더하기

Apic·2023년 2월 10일
0

프로그래머스

목록 보기
45/162

💡문제 설명

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


🚫제한사항

  • return 값은 이진수를 의미하는 문자열입니다.
  • 1 ≤ bin1
    , bin2
    의 길이 ≤ 10
  • bin1
    bin2
    는 0과 1로만 이루어져 있습니다.
  • bin1
    bin2
    는 "0"을 제외하고 0으로 시작하지 않습니다.

🔢입출력 예

bin1bin2result
"10""11""101"
"1001""1111""11000"

🔍입출력 예 설명

입출력 예 #1

  • 10 + 11 = 101 이므로 "101" 을 return합니다.

입출력 예 #2

  • 1001 + 1111 = 11000 이므로 "11000"을 return합니다.

💻코드

def solution(bin1, bin2):
    bin1_list = []
    sum1 = 0
    for i in range(len(bin1)):
        sum1 += int(bin1[i]) * (2**(len(bin1)-i-1))
        
    bin2_list = []
    sum2 = 0
    for i in range(len(bin2)):
        sum2 += int(bin2[i]) * (2**(len(bin2)-i-1))
        
    sum = sum1 + sum2
    print(sum1 ,sum2, sum)
    plus_list = []
    m = 0
    while True:
        m = int(sum / 2)
        n = sum % 2
        if n == 1:
            plus_list.append('1')
        elif n == 0:
            plus_list.append('0')
        if m == 0:
            break
        sum = m
        print(plus_list)
    answer = []
    for i in range(len(plus_list)-1, -1, -1):
        answer.append(str(plus_list[i]))
    print(answer)
    answer = ''.join(answer)
    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/120885?language=python3

profile
코딩 공부하는 사람

0개의 댓글