본문 바로가기

# 프로그래밍 개발/04. 알고리즘 문제풀이

백준 알고리즘 2729번 문제 풀이코드 공개 [이진수 덧셈]

반응형

문제

이진수 덧셈은 매우 간단하고, 십진수 덧셈과 비슷하게 하면 된다. 십진수 덧셈을 할 때는, 오른쪽부터 왼쪽으로 차례대로 숫자 하나씩 더하면 된다. 이진수 덧셈도 이와 비슷하게 하면 된다. 십진수 덧셈은 외워야 할 덧셈이 많지만, 이진수 덧셈은 아래와 같이 5가지만 기억하면 된다.

  • 0 + 0 = 0
  • 1 + 0 = 1
  • 0 + 1 = 1
  • 1 + 1 = 10
  • 1 + 1 + 1 = 11

두 이진수가 주어졌을 때, 그 합을 이진수로 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 수 T(1<=T<=1,000)가 주어진다. 각 테스트 케이스는 숫자 2개로 이루어져있다. 이 숫자는 0과 1로만 이루어진 이진수이며, 길이는 최대 80자리이다. (덧셈 결과는 81자리가 될 수도 있다) 이진수는 0으로 시작할 수도 있다.

출력

각 테스트 케이스에 대해 입력으로 주어진 두 이진수의 합을 구해 이진수로 출력한다. 숫자의 앞에 불필요한 0이 붙으면 안 된다.

 

출처

ICPC > Regionals > North America > Greater New York Region > 2005 Greater New York Programming Contest A번

  • 문제를 번역한 사람: baekjoon
  • 빠진 조건을 찾은 사람: djm03178
  • 문제의 오타를 찾은 사람: qja0950
  • 잘못된 데이터를 찾은 사람: sait2000

알고리즘 분류

지금까지 옛날 코드 포스팅을 쓰면서 처음으로 python을 발견한 것 같다. 

아마 python을 처음 공부했을 때 작성한 코드인 것 같아 보이며,

그만큼 어떤 코드로 작성하였을지 참 걱정이 된다. ..

 

tc = int(input())
for i in range(0,tc):
   a = input().split(' ')
   print(bin(int(a[0],2) + int(a[1],2))[2:])

와우... 굉장히 헷갈리는 코드 작성 방법이다. 

지금은 이런식으로 코드를 안 짜서.. 굉장히 색다른 기분이다. 

반응형