728x90
반응형

6061 : [기초-비트단위논리연산] 비트단위로 OR 하여 출력하기(설명)(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

입력된 정수 두 개를 비트단위로 or 연산한 후 그 결과를 정수로 출력해보자.
비트단위(bitwise) 연산자 |(or, vertical bar, 버티컬바)를 사용하면 된다.

** | 은 파이프(pipe)연산자라고도 불리는 경우가 있다.

** 비트단위(bitwise) 연산자는,
~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor),
<<(bitwise left shift), >>(bitwise right shift)
가 있다.

예를 들어 3과 5가 입력되었을 때를 살펴보면
3      : 00000000 00000000 00000000 00000011
5      : 00000000 00000000 00000000 00000101
3 | 5 : 00000000 00000000 00000000 00000111
이 된다.

비트단위 or 연산은 둘 중 하나라도 1인 자리를 1로 만들어주는 것과 같다.

이러한 비트단위 연산은 빠른 계산이 필요한 그래픽처리에서도 효과적으로 사용된다.

 

입력

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

 

 

출력

두 정수를 비트단위(bitwise)로 or 계산을 수행한 결과를 10진수로 출력한다.

 

 

입력 예시

3 5

 

 

출력 예시

7

 

 

내 소스

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

 

 

모범 소스

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

 

728x90
반응형
728x90
반응형

6060 : [기초-비트단위논리연산] 비트단위로 AND 하여 출력하기(설명)(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

입력된 정수 두 개를 비트단위로 and 연산한 후 그 결과를 정수로 출력해보자.
비트단위(bitwise)연산자 &를 사용하면 된다.(and, ampersand, 앰퍼센드라고 읽는다.)

 

 

입력

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

 

 

출력

두 정수를 비트단위(bitwise)로 and 계산을 수행한 결과를 10진수로 출력한다.

 

 

입력 예시

3 5

 

 

출력 예시

1

 

 

내 소스

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

 

 

모범 소스

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

 

 

참고

** 비트단위(bitwise)연산자는,
~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor),
<<(bitwise left shift), >>(bitwise right shift)
가 있다.

예를 들어 3과 5가 입력되었을 때를 살펴보면
3       : 00000000 00000000 00000000 00000011
5       : 00000000 00000000 00000000 00000101
3 & 5 : 00000000 00000000 00000000 00000001
이 된다.

비트단위 and 연산은 두 비트열이 주어졌을 때,
둘 다 1인 부분의 자리만 1로 만들어주는 것과 같다.
728x90
반응형
728x90
반응형

6059 : [기초-비트단위논리연산] 비트단위로 NOT 하여 출력하기(설명)(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

입력 된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력해보자.
비트단위(bitwise)연산자 ~ 를 붙이면 된다.(~ : tilde, 틸드라고 읽는다.)

 

 

입력

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

 

 

출력

비트 단위로 1 -> 0, 0 -> 1로 바꾼 후 그 값을 10진수로 출력한다.

 

 

입력 예시

2

 

 

출력 예시

-3

 

 

내 소스

a=int(input())
print(~a)

 

 

모범 소스

a=int(input())
print(~a)

 

 

참고

** 비트단위(bitwise) 연산자는,
~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor),
<<(bitwise left shift), >>(bitwise right shift)
가 있다.

예를 들어 1이 입력되었을 때 저장되는 1을 32비트 2진수로 표현하면
        00000000 00000000 00000000 00000001 이고,
~1은 11111111 11111111 11111111 11111110 가 되는데 이는 -2를 의미한다.
728x90
반응형
728x90
반응형

6058 : [기초-논리연산] 둘 다 거짓일 경우만 참 출력하기(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

2개의 정수값이 입력될 때,
그 불 값(True/False) 이 모두 False 일 때에만 True 를 출력하는 프로그램을 작성해보자.

 

 

입력

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

 

 

출력

두 값의 True / False 값이 모두 False 일 때만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.

 

 

입력 예시

0 0

 

 

출력 예시

True

 

 

내 소스

a,b=input().split()
a=bool(int(a))
b=bool(int(b))
print(not (a or b))

 

 

모범 소스 1

a, b = input().split()
c= bool(int(a))
d= bool(int(b))

print( not (c or d) )

 

 

모범 소스 2

a, b = input().split()
c= bool(int(a))
d= bool(int(b))

print( c==False and d==False )
728x90
반응형
728x90
반응형

6057 : [기초-논리연산] 참/거짓이 서로 같을 때에만 참 출력하기(설명)(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

2개의 정수값이 입력될 때,
그 불 값(True/False) 이 서로 같을 때에만 True 를 출력하는 프로그램을 작성해보자.

 

 

입력

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

 

 

출력

두 값의 True / False 값이 서로 같을 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.

 

 

입력 예시

0 0

 

 

출력 예시

True

 

 

내 소스

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

 

 

모범 소스 1

a, b = input().split()
a = bool(int(a))
b = bool(int(b))
print((a and b) or (not a and not b))

 

 

모범 소스 2

a, b = input().split()
a = bool(int(a))
b = bool(int(b))
print(a==b)
728x90
반응형
728x90
반응형

6056 : [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기(설명)(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

2개의 정수값이 입력될 때,
그 불 값(True/False) 이 서로 다를 때에만 True 를 출력하는 프로그램을 작성해보자.

 

 

입력

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

 

 

출력

두 값의 True / False 값이 서로 다를 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.

 

 

입력 예시

1 1

 

 

출력 예시

False

 

 

내 소스

a,b=input().split()
a=bool(int(a))
b=bool(int(b))
print((a and (not b)) or ((not a) and b))

 

 

모범 소스

a, b=input().split()
c = bool(int(a))
d = bool(int(b))
print((c and (not d)) or ((not c) and d))

 

 

참고

참 거짓이 서로 다를 때에만 True 로 계산하는 논리연산을 XOR(exclusive or, 배타적 논리합) 연산이라고도 부른다.

논리연산자는 사칙(+, -, *, /) 연산자와 마찬가지로 여러 번 중복해서 사용할 수 있는데, 
사칙 연산자와 마찬가지로 계산 순서를 표시하기 위해 괄호 ( )를 사용할 수 있다.
괄호를 사용하면 계산 순서를 명확하게 표현할 수 있다.

수학 식에서는 소괄호 (), 중괄호 {}, 대괄호 []를 사용하기도 하지만, 프로그래밍언어에서는 소괄호 ( ) 만 사용한다.

** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로 True(참)/False(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
728x90
반응형
728x90
반응형

6040 : [기초-산술연산] 정수 2개 입력받아 나눈 몫 계산하기(설명)(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

2개의 정수값이 입력될 때,
그 불 값이 하나라도 True 일 때에만 True 를 출력하는 프로그램을 작성해보자.

 

 

입력

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

 

 

출력

하나라도 참일 경우 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.

 

 

입력 예시

1 1

 

 

출력 예시

True

 

 

내 소스

a,b=input().split()
a=int(a)
b=int(b)
print(bool(a) or bool(b))

 

 

모범 소스

a, b = input().split()
print(bool(int(a)) or bool(int(b)))

 

 

참고

python언어에서는 나눈 몫을 계산하는 연산자(//, floor division)를 제공한다.
a//b 와 같이 작성하면, a를 b로 나눈 몫(quotient)을 계산해준다.
프로그래밍언어에 따라 이렇게 몫을 계산해주는 연산자가 없는 경우도 있다.

실수로 나눈 몫이 어떻게 계산될지도 생각해보자.

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

정수 2개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력해보자.

 

 

입력

2개의 정수(a, b)가 공백으로 구분되어 입력된다.

 

 

출력

a를 b로 나눈 몫을 출력한다.

 

 

입력 예시

10 3

 

 

출력 예시

3

 

 

내 소스

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

 

 

모범 소스

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

 

 

참고

or 예약어는 주어진 두 불 값 중에서 하나라도 True 이면 True 로 계산하고, 나머지 경우는 False 로 계산한다.
이러한 논리연산을 OR 연산(boolean OR)이라고도 부르고, + 로 표시하거나, 집합 기호 ∪(합집합, union)로 표시하기도 한다.
모두 같은 의미이다.

참, 거짓의 논리값 인 불(boolean) 값을 다루어주는 예약어는 not, and, or 이 있고,
불 값들 사이의 논리(not, and, or) 연산 결과도 마찬가지로 True 또는 False 의 불 값으로 계산된다.

** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로 True(참)/False(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
728x90
반응형
728x90
반응형

6054 : [기초-논리연산] 둘 다 참일 경우만 참 출력하기(설명)(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

2개의 정수값이 입력될 때,
그 불 값이 모두 True 일 때에만 True 를 출력하는 프로그램을 작성해보자.

 

 

입력

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

 

 

출력

둘 다 True 일 경우에만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.

 

 

입력 예시

1 1

 

 

출력 예시

True

 

 

내 소스

a,b=input().split()
a=int(a)
b=int(b)
print(bool(a) and bool(b))

 

 

모범 소스

a, b = input().split()
print(bool(int(a)) and bool(int(b)))

 

 

참고

and 예약어는 주어진 두 불 값이 모두 True 일 때에만 True 로 계산하고, 나머지 경우는 False 로 계산한다.
이러한 논리연산을 AND 연산(boolean AND)이라고도 부르고, · 으로 표시하거나 생략하며, 집합 기호 ∩(교집합, intersection)로 표시하기도 한다. 
모두 같은 의미이다.

참, 거짓의 논리값 인 불(boolean) 값을 다루어주는 예약어는 not, and, or 이 있고,
불 값들 사이의 논리(not, and, or) 연산 결과도 마찬가지로 True 또는 False 의 불 값으로 계산된다.

** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로 True(참)/False(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
728x90
반응형
728x90
반응형

6053 : [기초-논리연산] 참 거짓 바꾸기(설명)(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

정수값이 입력될 때,
그 불 값을 반대로 출력하는 프로그램을 작성해보자.

 

 

입력

정수 1개가 입력된다.

 

 

출력

입력된 정수의 불 값이 False 이면 True, True 이면 False 를 출력한다.

 

 

입력 예시

1

 

 

출력 예시

False

 

 

내 소스

a=bool(int(input()))
print(not a)

 

 

모범 소스

a = bool(int(input()))
print(not a)

 

 

참고

a = bool(int(input()))

와 같은 형태로 겹쳐 작성하면, 한 번에 한 단계씩 계산/처리/평가된다.

위와 같은 명령문의 경우 input( ), int( ), bool( ) 순서로 한 번에 한 단계씩 계산/처리/평가된다.


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

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

이러한 논리연산을 NOT 연산(boolean NOT)이라고도 부르고,
프라임 '(문자 오른쪽 위에 작은 따옴표), 바(기호 위에 가로 막대), 문자 오른쪽 위에 
c
(여집합, complement) 등으로 표시한다.
모두 같은 의미이다.

참, 거짓의 논리값 인 불(boolean) 값을 다루어주는 예약어는 not, and, or 이 있고,
불 값들 사이의 논리(not, and, or) 연산 결과도 마찬가지로 True 또는 False 의 불 값으로 계산 된다.

정수값 0은 False 이고, 나머지 정수 값들은 True 로 평가된다.
빈 문자열 "" 나 ''는 False 이고, 나머지 문자열들은 True 로 평가된다.

** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로 True(참)/False(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
728x90
반응형
728x90
반응형

6052 : [기초-논리연산] 정수 입력받아 참 거짓 평가하기(설명)(py)

시간 제한: 1 Sec  메모리 제한: 128 MB

 

 

문제 설명

정수가 입력되었을 때, True/False 로 평가해주는 프로그램을 작성해보자.

 

 

입력

정수 1개가 입력된다.

 

 

출력

입력된 값이 0이면 False, 0이 아니면 True 를 출력한다.

 

 

입력 예시

0

 

 

출력 예시

False

 

 

내 소스

a=int(input())
print(bool(a))

 

 

모범 소스

n = int(input())
print(bool(n))

 

 

참고

bool( ) 을 이용하면 입력된 식이나 값을 평가해 불 형의 값(True 또는 False)을 출력해준다.
식이나 값을 계산해서 결과값이 만들어지는 것을 평가(evaluate)라고 한다. 

python
 언어에서 정수값 0은 False(거짓)로 평가되고, 그 외의 값들은 모두 True(참)로 평가된다.
** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로 True(참)/False(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
728x90
반응형

+ Recent posts