TeamH4C_ProjectH4C/프로그래밍 언어

[TeamH4C_CodeUp] 기초 100제_논리연산과 삼항연산

P4P3R_H 2021. 2. 5. 21:14

안녕하세요~ Hak2입니다😀

날씨가 점점 풀리는 거 같네요~ 이럴 때일수록 감기를 조심해야 합니다ㅎㅎㅎ모두 감기 조심하세요~

그럼 이제 논리 연산 문제를 풀어보겠습니다.

 

논리 연산에는 not연산이 존재합니다. 참을 거짓으로 바꾸고 거짓을 참으로 바꾸는 연산입니다.

이 연산을 통해 참과 거짓을 뜻하는 정수 1과 0이 있습니다. 이 정수를 반대의 값으로 출력하기 위해서는 not연산자를 사용하면 됩니다.

무한반복을 통해 0과 1만을 입력받을 때 출력되도록 만들 수 있기도 합니다.

 

and연산자로 교집합을 의미하는 논리 연산입니다. 파이썬에서의 기호는 and(&)를 사용하며 모두 참이어야 참인 결과를 나타내는 연산자입니다.

 

or연산자는 하나의 값이라도 모두 참이면 참인 논리 연산입니다. or(|) 연산자를 사용하며 합집합의 의미가 있습니다.

 

서로 다르면 참이 되는 연산은 xor연산입니다. ^연산을 사용하며 합집합에서 교집합을 제외한 것입니다.

 

서로의 결과가 같을 때 참이 되는 논리 연산을 만들기 위해서는 두 변수의 결과가 참인 것을 비교할 때 한 변수의 결과를 서로 바꾸어 비교할 때 서로의 결괏값이 0이면 결과는 같은 것이 됩니다.

위의 설명처럼 (not a and b) == (a and not b) 두 값이 같으면 서로의 결과가 같은 상황이고 같음 연산자(==)를 논리 연산자로 바꾸고 싶으면 아래 주석의 코드와 같이 됩니다.

 

두 값 모두 거짓일 때 참이 되기위해서는 두 값 모두 not연산을 통해 값을 뒤집은 상태에서 and 연산을 통해 결과가 참이면 됩니다. 또는 아래와 같이 두 값 중 하나가 참일 때 결과를 뒤집어 거짓으로 하고, 두 값이 거짓일 때 참이 되도록 결과를 뒤집어 원하는 결과를 얻을 수 있습니다.

 

이것은 비트단위의 논리연산으로 2진 형태로 바꾸어 연산하는 논리 연산입니다.

1은 0으로 0은 1로 바꾸어 10진수로 바꾸어 다시 출력하는 연산은 ~연산자를 이용합니다.

~연산은 비트단위의 연산으로 참과 거짓이 아닌 2진 형태의 1과 0을 서로 바꿔줍니다.

 

비트 연산의 and 연산은 &를 이용하면 됩니다.

여기서 저는 람다 표현식을 통해 a와 b의 값을 이름 없는 함수에 넣어 계산을 수행 후, 출력하도록 하였습니다.

 

or연산은 | 기호를 사용하여 연산할 수 있습니다. | 기호는 파이프(pipe) 연산이라고도 불리기 합니다.

 

두 수가 다를 경우만 참(1)인 연산으로 xor이 있습니다. xor의 기호는 ^를 사용하여 연산합니다.

 

이번에는 삼항 연산으로 피연산자가 3개가 있어 삼항 연산이라 불립니다.

파이썬에서의 삼항 연산은 and와 or, if와 else로 나뉘어 연산됩니다. if와 else를 주로 사용하기에 저도 if와 else의 방법으로 삼항연산 문제를 풀어보겠습니다.

 

삼항 연산을 이용하여 더 많은 입력을 받아 비교하는 방식인데 아래와 같이 활용이 가능합니다. 주석으로 삼항 연산의 기본 입력방식을 보고 확인하시면 됩니다.

 

이상으로 논리 연산과 삼항 연산에 대한 문제들을 풀어보았습니다.

감사합니다~