반응형
문제
총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 이진수 A, 둘째 줄에 이진수 B가 주어진다. 두 이진수의 길이는 모두 100,000이다. 예제의 경우에만 길이가 10이며, 예제는 채점하지 않는다.
출력
첫째 줄부터 한 줄에 하나씩 차례대로 A & B, A | B, A ^ B, ~A, ~B를 출력한다.
예제 입력 1
0001011000
0000101111
예제 출력 1
0000001000
0001111111
0001110111
1110100111
1111010000
먼가 코드가 맘에 안든다...
a = input()
b = input()
andp = ''
orp = ''
xorp = ''
notap = ''
notbp = ''
for i in range(len(a)):
q = int(a[i]) + int(b[i])
if q == 2:
andp += str(q-1)
orp += str(q-1)
xorp += str(q-2)
elif q == 0:
andp += str(q)
orp += str(q)
xorp += str(q)
elif q == 1: # 1
andp += str(q-1)
orp += str(q)
xorp += str(q)
notap += str(int(not(int(a[i]))))
notbp += str(int(not(int(b[i]))))
print(andp)
print(orp)
print(xorp)
print(notap)
print(notbp)
더 쉬운 방법이 있을 것 같은데...
반응형
'알고리즘' 카테고리의 다른 글
[BAEKJOON] 14935 FA (0) | 2025.07.16 |
---|---|
[BAEKJOON] 2839 설탕 배달 (1) | 2025.07.12 |
[BAEKJOON] 15633 Fan Death (0) | 2025.07.10 |
[BAEKJOON] 5300 Fill the Rowboats! (0) | 2025.07.02 |
[BAEKJOON] 30454 얼룩말을 찾아라! (0) | 2025.06.27 |