반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
이진수 A, B를 [and, or, xor, not A, not B] 연산하는 문제입니다.
2022.01.24 - [PL (Programming Language)/Python] - [Python] 파이썬 연산자와 자동 형변환(캐스팅, Casting)
위 글의 논리연산자를 이용하면 쉽게 풀 수 있습니다. 논리 연산자는 True, False 뿐만 아니라 0(False), 1(True) 비트 연산도 가능합니다. 따라서 논리연산자를 이용하면 이진수 연산을 할 수 있습니다.
3. 코드
# 입력
A = map(int, input())
B = map(int, input())
# 계산
_and, _or, _xor, _notA, _notB = '', '', '', '', ''
for a, b in zip(A, B):
_and += str(a and b) # A & B
_or += str(a or b)
_xor += str(a ^ b)
_notA += str(int(not a))
_notB += str(int(not b))
# 출력
print(_and)
print(_or)
print(_xor)
print(_notA)
print(_notB)
논리연산자를 이용해서 A, B를 비트단위로 계산합니다. zip() 함수를 사용하면 A, B 1비트씩 꺼내서 연산할 수 있습니다.
not a와 not b는 True/False로 반환되므로 int형으로 한번 더 형 변환해줍니다.
반응형
'Algorithm' 카테고리의 다른 글
[탐색/BFS] 백준 16953 A → B - 파이썬(Python) (0) | 2022.05.04 |
---|---|
[탐색/DFS] 백준 11725 트리의 부모 찾기 - 파이썬(Python) (0) | 2022.05.03 |
[구현/수학] 백준 8741 이진수 합 - 파이썬(Python) (0) | 2022.05.01 |
[구현/수학] 백준 14656 조교는 새디스트야!! - 파이썬(Python) (0) | 2022.04.30 |
[구현/수학] 백준 10996 별 찍기 - 21 - 파이썬(Python) (0) | 2022.04.29 |
댓글