본문 바로가기

Algorithm83

[CodeUp 기초 100제] 1059 : [기초-비트단위논리연산] 비트단위로 NOT 하여 출력하기(풀이 성공) 입력: 정수 1개가 입력된다. -2147483648 ~ +2147483647 출력: 비트 단위로 1 -> 0, 0 -> 1로 바꾼 후 그 값을 10진수로 출력한다. 내 코드: a=int(input()) x=int(bin(a),2) x=bin(~x) print(int(x, 2)) Comment: 2진수와 10진수 변환, 비트 연산자 '~'의 쓰임을 알고 있다면 쉽게 풀 수 있다. '~'는 NOT 연산을 수행하며, 주어진 수에 0이 들어간 곳을 1로, 1이 들어간 곳을 0으로 바꿔준다. ※ 진수 변환에 대한 설명 참고 : hengbokhan.tistory.com/60 [CodeUp 기초 100제]1034 : [기초-출력변환] 8진 정수 1개 입력받아 10진수로 출력하기(풀이 성공) 입력: 8진 정수 1개가 .. 2021. 2. 22.
[CodeUp 기초 100제] 1058 : [기초-논리연산] 둘 다 거짓일 경우만 참 출력하기(풀이 성공) 입력: 1 또는 0의 값만 가지는 2개의 정수가 공백을 두고 입력된다. 출력: 둘 다 거짓일 경우에만 1을 출력하고, 그 외의 경우에는 0을 출력한다. 내 코드: x, y=map(int, input().split()) print(int(not(x|y))) Comment: 비트 연산자 '|'는 주어진 두 수가 모두 거짓일 때만 거짓(False=0)을 출력합니다. 여기에 not을 적용하면 주어진 수가 모두 0일 때만 참(True)가 나오게 할 수 있습니다. ※ 비트 연산자 설명 참고 : hengbokhan.tistory.com/104 [CodeUp 기초 100제] 1056 : [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기(풀이 성공) 입력: 1 또는 0의 값만 가지는 2개의 정수가 공백을 두고 .. 2021. 2. 22.
[CodeUp 기초 100제]1057 : [기초-논리연산] 참/거짓이 서로 같을 때에만 참 출력하기(풀이 성공) 입력: 1 또는 0의 값만 가지는 2개의 정수가 공백을 두고 입력된다. 출력: 참/거짓이 서로 같을 때에만 1을 출력하고, 그 외의 경우에는 0을 출력한다. 내 코드: x, y=map(int, input().split()) print(int(not(x^y))) Comment: 비트연산자 '^'는 두 수가 다를 때에만(True, False or False, True) 참(True=1)을 출력합니다. 이 연산을 not으로 감싸주면 두 수가 같을 경우에만 True를 출력하는 코드를 만들 수 있습니다. ※ 비트 연산자 설명 참고 : hengbokhan.tistory.com/104 [CodeUp 기초 100제] 1056 : [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기(풀이 성공) 입력: 1 또는 0.. 2021. 2. 22.
[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.