문제
두 이진수의 합을 이진수로 출력하라. 선행 0은 제거한다.
입력
테스트 케이스 수와 각 케이스에 두 이진수가 주어진다.
출력
각 케이스마다 합을 이진수로 출력한다.
예제
| 입력 | 출력 |
|---|---|
3 100 010 0 0 10 1 | 110 0 11 |
풀이
Python의 int(str, 2) 함수로 이진수를 정수로 변환한 뒤, 합산하여 다시 이진수 문자열로 출력한다.
- 두 이진수 문자열을
int(a, 2)로 정수로 변환한다 - 두 정수를 더한다
bin()결과에서0b접두사를 제거하여 출력한다
핵심 아이디어: Python의 내장 진법 변환을 활용하면 캐리 처리 없이 간결하게 해결된다.
코드
n = int(input())
for _ in range(n):
a,b = input().split(" ")
a = int(a,2)
b = int(b,2)
print(bin(a+b).replace("0b",""))복잡도
- 시간: O(N)
- 공간: O(N)