ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [코드업] 파이썬 기초 100 문제 정리 [4]
    공부/Python 2023. 3. 7. 17:41

    조건 1

    입력
    2개의 정수(a, b)가 공백을 두고 입력된다.
    -2147483647 <= a, b <= +2147483648

    출력
    a와 b가 다른 경우 True 를, 그렇지 않은 경우 False 를 출력한다.
     
    어떤 값을 비교하기 위해 비교/관계(comparison/relational) 연산자(operator)를 사용할 수 있다.

     

    a, b = input().split()
    a = int(a)
    b = int(b)
    print(a != b)

     

    조건 2

    입력
    정수 1개가 입력된다.

    출력
    입력된 값이 0이면 False, 0이 아니면 True 를 출력한다.
    a = input()
    a = int(a)
    print(bool(a))

     

    bool( )  : 입력된 식이나 값을 "평가"해 (True 또는 False)을 출력
    평가(evaluate) : 식이나 값을 계산해서 결과값이 만들어지는 것 

    python에서 정수값 0은 False(거짓)로 평가되고, 그 외의 값들은 모두 True(참)로 평가된다.

     

    조건 3

    입력
    정수 1개가 입력된다.

    출력
    입력된 정수의 불 값이 False 이면 True, True 이면 False 를 출력한다.
    a = bool(int(input()))
    #위와 같은 형태로 겹쳐 작성하면, 한 번에 한 단계씩 계산/처리/평가된다.
    print(not a)

    어떤 불 값이나 변수에 not True, not False, not a 와 같은 계산이 가능하다.

     

    참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서 not 예약어(reserved word, keyword)를 사용할 수 있다고 한다.

     

    조건 4

    입력
    2개의 정수가 공백을 두고 입력된다.

    출력
    둘 다 True 일 경우에만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.
    a,b = input().split()
    a = int(a)
    b = int(b)
    print(bool(a) and bool(b))

    and 예약어는 주어진 두 불 값이 모두 True 일 때에만 True 로 계산하고, 나머지 경우는 False 로 계산한다.

    AND 연산자

    다른 값을 입력 했을때 True가 나온다면  이 이미지를 보면 이해하는데 도움될거같다. 

     

    조건 5

    입력
    2개의 정수가 공백을 두고 입력된다.

    출력
    두 값의 True / False 값이 서로 다를 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.
    a,b = input().split()
    a = int(a)
    b = int(b)
    print(bool(a) or bool(b))

     

    조건 6

    입력
    2개의 정수가 공백을 두고 입력된다.

    출력
    두 값의 True / False 값이 서로 다를 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.
    a,b = input().split()
    c = bool(int(a))
    d = bool(int(b))
    print((c and (not d) or (not c) and d))

    *not 조건은 A가 거짓이라면 참(True)를 반환하고, A가 참이라면 거짓(False)를 반환한다. 

    d가 거짓이면 참이기때문에 AND 연산을 할때 C가 거짓이면 두 값이 다르게되어 OR연산을 통해 True를 출력하게된다.

    이렇게 사용한 이유는  두 조건이 다른 이라는 조건을 위해서 때문이다.

    조건 7

    입력
    2개의 정수가 공백을 두고 입력된다.

    출력
    두 값의 True / False 값이 서로 같을 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.
     
    a,b = input().split()
    c = bool(int(a))
    d = bool(int(b))
    print((not c) and (not d) or (c and d))
    
    #not 연산자 쪽에서는 
    1 1 = F , 1 0 = F , 0 1 = F , 0 0 = T
    여기에 AND 연산을 한번 더 하게 되면 
    0 0 = F , 0 1 = F, 1 0 = F, 1 1 = T 
    #and 연산자 쪽에서는
    1 1 = T , 1 0 = F, 0 1 = F, 0 0 F
    #최종적으로 OR 연산을 하게되면
    F OR T = T , F OR F = F , F OR F = F, T OR F = T

    조건 8

    입력
    2개의 정수가 공백을 두고 입력된다.

    출력
    두 값의 True / False 값이 모두 False 일 때만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.
     
    a,b = input().split()
    c = bool(int(a))
    d = bool(int(b))
    
    print(not (c or d))
    
    or연산을 부정으로 바꿈

    조건 9

    입력
    정수 1개가 입력된다.
    -2147483648 ~ +2147483647

    출력
    비트 단위로 1 -> 0, 0 -> 1로 바꾼 후 그 값을 10진수로 출력한다. (bitwise not 연산자를 사용)
     
    a = input()
    a = int(a)
    print(~a)

    비트단위(bitwise)연산자는 다음과 같다.

    연산자 기능 문법 설명
    & 비트 AND a & b a b의 비트를 AND 연산
    | 비트 OR a | b a b의 비트를 OR 연산
    ^ 비트 XOR a ^ b a b의 비트를 XOR 연산(배타적 OR, Exclusive OR)
    ~ 비트 NOT ~x x의 비트를 뒤집음
    <<  비트 왼쪽 시프트 a << b a의 비트를 b번 왼쪽으로 이동시킴
    >>  비트 오른쪽 시프트 a >> b a의 비트를 b번 오른쪽으로 이동시킴
    &= 비트 AND 연산 후 할당 a &= b a b의 비트를 AND 연산한 후 결과를 a에 할당
    |= 비트 OR 연산 후 할당 a |= b a b의 비트를 OR 연산한 후 결과를 a에 할당
    ^= 비트 XOR 연산 후 할당 a ^= b a b의 비트를 XOR 연산한 후 결과를 a에 할당
    <<= 비트 왼쪽 시프트 후 할당 a <<= b a의 비트를 b번 왼쪽으로 이동시킨 후 결과를 a에 할당
    >>= 비트 오른쪽 시프트 후 할당 a >>= b a의 비트를 b번 오른쪽으로 이동시킨 후 결과를 a에 할당
     

    조건 10

    입력
    2개의 정수가 공백을 두고 입력된다.
    -2147483648 ~ +2147483647

    출력
    두 정수를 비트단위(bitwise)로 and 계산을 수행한 결과를 10진수로 출력한다.
     
    a,b= input().split()
    a = int(a)
    b = int(b)
    print(a&b)

     

Designed by Tistory.