본문 바로가기

CodeUp 기초 100제48

[CodeUp 기초 100제] 1056 : [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기(풀이 성공) 입력: 1 또는 0의 값만 가지는 2개의 정수가 공백을 두고 입력된다. 출력: 참/거짓이 서로 다를 때에만 1을 출력하고, 그 외의 경우에는 0을 출력한다. 내 코드: x, y = input().split() a = int(x) b = int(y) def xor(x, y): if x!=y: return 1 else: return 0 print(xor(a, b)) 또 다른 풀이: x,y=map(int, input().split()) print(int(bool(x)^bool(y))) Comment: 처음에는 xor 논리 연산자가 존재하지 않는 줄 알고 그냥 함수를 만들어서 풀었는데, 비트 연산자를 사용해서 푸는 것도 가능하더군요. '^'는 xor 연산을 할 때 사용하는 비트 연산자입니다. 비트 연산자에 대해.. 2021. 2. 18.
[CodeUp 기초 100제] 1055 : [기초-논리연산] 하나라도 참이면 참 출력하기(풀이 성공) 입력: 1 또는 0의 값만 가지는 2개의 정수가 공백을 두고 입력된다. 출력: 하나라도 참일 경우 1을 출력하고, 그 외의 경우에는 0을 출력한다. 내 코드: x,y=map(int, input().split()) print(int(bool(x)|bool(y))) Comment: 또 다른 논리 연산자 문제입니다. '|'는 or를 뜻합니다. if에서 조건을 줄 때, 다음과 같이 준다고 해보겠습니다. x=10 print((x > 0) | (x==10)) # True | True >> True print((x > 0) | (x==0)) # True | False >> True print((x==0) | (x==10)) # False | True >> True print((x==0) | (x < 0)) # Fal.. 2021. 2. 18.
[CodeUp 기초 100제] 1054 : [기초-논리연산] 둘 다 참일 경우만 참 출력하기(풀이 성공) 입력: 1 또는 0의 값만 가지는 2개의 정수가 공백을 두고 입력된다. 출력: 둘 다 참(1)일 경우에만 1을 출력하고, 그 외의 경우에는 0을 출력한다. 내 코드: x,y=map(int, input().split()) print(int(bool(x)&bool(y))) Comment: '둘 다 참(1)일 경우에만'이라는 말 때문에 if 문을 사용해야 한다고 생각하기 쉽지만, 비교 연산자를 쓰면 더욱 간결한 코드를 작성할 수 있습니다. '&'(=and) 비교연산자는 두 값이 모두 True일 때에만 True를 반환합니다. 예시는 아래와 같습니다. print(True & True) >> True print(True & False) >> False print(False & True) >> False print(.. 2021. 2. 18.
[CodeUp 기초 100제] 1053 : [기초-논리연산] 참 거짓 바꾸기(풀이 성공) 입력: 정수 1개가 입력된다.(단, 0 또는 1 만 입력된다.) 출력: 입력된 값이 0이면 1, 1이면 0을 출력한다. 내 코드: x=int(input()) print(int(not bool(x))) Comment: bool과 not을 활용하는 문제입니다. bool(x)는 x가 참(=1)인지 거짓(=0)인지를 판단하여 결과를 출력합니다. not은 반대의 값을 출력하라는 뜻입니다. True의 반대는 False, False의 반대는 True죠. 결국 not bool(x)는 bool(x)가 True일 경우 그 반대값인 False를, False일 경우 그 반대값인 True를 출력하라는 말입니다. 2021. 2. 16.