문제풀이/파이썬 기초 100제
[코드업] - 6056, [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기
yglee730
2021. 7. 17. 19:23
728x90
https://codeup.kr/problem.php?id=6056
[기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기(설명)(py)
python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용
codeup.kr
이번 문제는 2개의 정수를 입력받고, 서로 True/False가 다를 때만 True를 출력하는 문제입니다.
XOR 연산이라고도 합니다.
서로 달라야 True가 뜨게 하려면 하나는 True, 하나는 False여야하니까 or 연산을 하면 됩니다.
False or True -> True
True or False -> True 이렇게 되는데 예외사항이 있습니다
True or True -> True 라서 단순히 or 연산만 하면 안됩니다.
하나만 False를 만들기 위해서 and와 not을 같이 써줍니다.
서로 같다면 not 연산을 한쪽만 했을 때 결과값은 서로 달라집니다.
그리고 이 상태에서 and 연산을 하면 결과값은 False가 됩니다.
그리고 이번에는 반대쪽만 not 연산을 하고 and 연산을 진행합니다.
그렇게 되면 연산식이 (a and (not b)), ((not a) and b)처럼 크게 2개로 나뉠텐데,
a and (not b) | b = True | b = False |
a = True | False | True |
a = False | False | False |
(not a) and b | b = True | b = False |
a = True | False | False |
a = False | True | False |
a and (not b) or (not a) and b |
b = True | b = False |
a = True | False | True |
a = False | True | False |
이렇게 되면 서로 다를때만 True를 출력할 것입니다.