본문 바로가기
Algorithm

[구현/수학] 백준 1252 이진수 덧셈 - 파이썬(Python)

by jangThang 2022. 4. 21.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    1252번: 이진수 덧셈

    첫째 줄에 두 개의 이진수가 빈 칸을 사이에 두고 주어진다. 각 이진수는 1 또는 0으로만 이루어져 있으며, 0으로 시작할 수도 있다. 또한 각 이진수의 길이는 80을 넘지 않는다.

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     두 이진수를 입력받아 덧셈한 결과를 출력하는 문제입니다.

     

    num = 0
    digit = 0
    # 이진수 => 십진수 변환
    for i in N[::-1]:
        num += int(i)*(2**digit)
        digit += 1
    
    res = ''
    # 십진수 => 이진수 변환
    while num != 0:
        res = str(num%2) + res
        num //= 2
    print(res)

      십진수 <=> 2진수 변환 규칙대로 코드를 구현하면 위와 같습니다. 하지만, 파이썬에서는 진수 변환을 보조해주는 함수가 별도로 존재합니다.

     

    int(n, base=m): n을 m진수로 변환
    bin(n): 2진수를 10진수로 변환

     

     

     

    3. 코드

    n1, n2 = input().split()
    res = int(n1, 2) + int(n2, 2)
    print(bin(res)[2:])

     int()와 bin()함수를 이용하면 간단하게 구현할 수 있습니다.

     

    star가 되고나서 Tistory

    반응형

    댓글