https://www.acmicpc.net/problem/2729
2729번: 이진수 덧셈
이진수 덧셈은 매우 간단하고, 십진수 덧셈과 비슷하게 하면 된다. 십진수 덧셈을 할 때는, 오른쪽부터 왼쪽으로 차례대로 숫자 하나씩 더하면 된다. 이진수 덧셈도 이와 비슷하게 하면 된다. 십
www.acmicpc.net
문제
이진수 덧셈은 매우 간단하고, 십진수 덧셈과 비슷하게 하면 된다. 십진수 덧셈을 할 때는, 오른쪽부터 왼쪽으로 차례대로 숫자 하나씩 더하면 된다. 이진수 덧셈도 이와 비슷하게 하면 된다. 십진수 덧셈은 외워야 할 덧셈이 많지만, 이진수 덧셈은 아래와 같이 5가지만 기억하면 된다.
- 0 + 0 = 0
- 1 + 0 = 1
- 0 + 1 = 1
- 1 + 1 = 10
- 1 + 1 + 1 = 11
두 이진수가 주어졌을 때, 그 합을 이진수로 출력하는 프로그램을 작성하시오.
풀이
이런 진수 관련 문제를 풀때 항상 말하는 것이지만, 일단 계산전에 받을때는 무조건 정수화 하지말고 문자열로 받은 다음에 정수 처리를 해 줘야 오류가 안 생긴다. bin, oct같은 함수를 사용하면 앞에 항상 0c 0b같은 문자열이 달라붙어 정수 계산이 불가능하다.
따라서 일단 문자열로 받고 정수 처리와 동시에 2진화를 해준 후 계산해주면 된다.
코드
n=int(input()) #test case
#2진수 덧셈
for i in range(n):
a,b=input().split(" ") #int로 받으면 안됨!
a=int(a,2) #2진수화
b=int(b,2) #2진수화
print(bin(a+b)[2:]) #bin 함수같은 진수법 함수 앞에 나오는 표기 2칸 이후 숫자만 출력되게함
'백준 > python' 카테고리의 다른 글
1259:팰린드롬 수(python) (0) | 2023.09.14 |
---|---|
2693:N번째 큰수(python) (0) | 2023.09.14 |
4344:평균은 넘겠지(python) (0) | 2023.09.14 |
2033:반올림(python) (0) | 2023.09.14 |
5585: 거스름돈(python) (0) | 2023.09.14 |