문제풀이/파이썬 기초 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를 출력할 것입니다.