일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Blazor
- 파이썬
- 코드업
- 파이썬알고리즘
- 생성형AI
- attention
- nlp
- C#
- 클라우드
- 블레이저
- 빅데이터
- 머신러닝
- codeup
- Microsoft
- Azure
- Python
- 파이썬기초100제
- DataScience
- 파이썬기초
- gcp
- 알고리즘
- 한빛미디어
- GenAI
- GenerativeAI
- 데이터분석
- 구글퀵랩
- 자연어처리
- 코드업100제
- 데이터사이언스
- 코드업파이썬
Archives
- Today
- Total
Tech for good
[파이썬/Python] CodeUp 파이썬 기초 100제 6046 - 6058 본문
6046 : [기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기
- 정수 1개를 입력받아 2배 곱해 출력해보자.
참고
*2 를 계산한 값을 출력해도 되지만,
정수를 2배로 곱하거나 나누어 계산해 주는 비트단위시프트연산자 <<, >>를 이용할 수 있다.
컴퓨터 내부에는 2진수 형태로 값들이 저장되기 때문에,
2진수 형태로 저장되어 있는 값들을 왼쪽(<<)이나 오른쪽(>>)으로
지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 1/2로 줄어드는데,
왼쪽 비트시프트(<<)가 될 때에는 오른쪽에 0이 주어진 개수만큼 추가되고,
오른쪽 비트시프트(>>)가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가되고,
가장 오른쪽에 있는 1비트는 사라진다.
예시
n = 10
print(n<<1) #10을 2배 한 값인 20 이 출력된다.
print(n>>1) #10을 반으로 나눈 값인 5 가 출력된다.
print(n<<2) #10을 4배 한 값인 40 이 출력된다.
print(n>>2) #10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다.
정수 10의 2진수 표현은 ... 1010 이다.
10 << 1 을 계산하면 ... 10100 이 된다 이 값은 10진수로 20이다.
10 >> 1 을 계산하면 ... 101 이 된다. 이 값은 10진수로 5이다.
n = 10 과 같이 키보드로 입력받지 않고 직접 작성해 넣은 코드에서, 숫자로 시작하는 단어(식별자, identifier)는 자동으로 수로 인식된다.
n = 10 에서 10 은 10진수 정수 값으로 인식된다.
변수 n 에 문자열을 저장하고 싶다면, n = "10" 또는 n = '10'으로 작성해 넣으면 되고,
n = 0o10 으로 작성해 넣으면 8진수(octal) 10으로 인식되어 10진수 8값이 저장되고,
n = 0xf 나 n = 0XF 으로 작성해 넣으면 16진수(hexadecimal) F로 인식되어 10진수 15값으로 저장된다.
** python에서 실수 값에 대한 비트시프트 연산은 허용되지 않고 오류가 발생한다.
(실수 값도 컴퓨터 내부적으로는 2진수 형태로 저장되고 비트시프트 처리가 될 수 있지만, python 에서는 허용하지 않는다.)
입력
정수 한 개가 입력된다.
단, -1073741824 ~ +1073741823
출력
2배 곱한 정수를 출력한다.
입력 예시
1024
출력 예시
2048
# 정수 1개를 입력받아 2배 곱해 출력하기
num = int(input())
print(num<<1)
6047 : [기초-비트시프트연산] 2의 거듭제곱 배로 곱해 출력하기
- 정수 2개(a, b)를 입력받아 a를 2b배 곱한 값으로 출력해보자.
0 <= a <= 10, 0 <= b <= 10
예시
a = 2
b = 10
print(a << b) #210 = 1024 가 출력된다.
참고
예를 들어 1 3 이 입력되면 1을 23(8)배 하여 출력한다.
입력
정수 2개(a, b)가 공백을 두고 입력된다.
0 <= a, b <= 10
출력
a 를 2b배 만큼 곱한 값을 출력한다.
입력 예시
1 3
출력 예시
8
a, b = input().split(' ')
a = int(a)
b = int(b)
print(a<<b)
6048 : [기초-비교연산] 정수 2개 입력받아 비교하기
- 두 정수(a, b)를 입력받아
a가 b보다 작으면 True 를, a가 b보다 크거나 같으면 False 를 출력하는 프로그램을 작성해보자.
예시
print(123<456) #비교 연산자 < 의 계산 결과인 True(참)가 출력된다.
(123, 456 은 숫자로 작성된 단어이기 때문에 10진수로 인식된다.)
참고
어떤 값을 비교하기 위해 비교/관계(comparison/relational) 연산자(operator)를 사용할 수 있다.
비교/관계연산자 < (less than sign) 는
왼쪽의 값이 오른쪽 값 보다 작은 경우 True(참)로 계산하고,
그 외의 경우에는 False(거짓)로 계산한다.
비교/관계연산자도 일반적인 사칙연산자처럼 주어진 두 수를 이용해 계산을 수행하고,
그 결과를 True(참), 또는 False(거짓)로 계산해 주는 연산자이다.
비교/관계연산자는 <, >, <=, >=, ==(같다), !=(다르다) 6개가 있다.
True(참) 또는 False(거짓) 값으로만 표현하고 저장하는 값을 불(bool)/불리언(boolean) 값이라고 한다.
정수, 실수, 문자, 문자열과 마찬가지로 또 다른 형태의 데이터형(data type)이다.
입력
두 정수(a, b)가 공백을 두고 입력된다.
-2147483648 <= a, b <= +2147483647
출력
a가 b보다 작은 경우 True를, 그렇지 않은 경우 False를 출력한다.
입력 예시
1 9
출력 예시
True
a, b = input().split()
a = int(a)
b = int(b)
if a < b:
print(True)
else:
print(False)
6049 : [기초-비교연산] 정수 2개 입력받아 비교하기
- 두 정수(a, b)를 입력받아
a와 b의 값이 같으면 True 를, 같지 않으면 False 를 출력하는 프로그램을 작성해보자.
참고
어떤 값을 비교하기 위해 비교/관계(comparison/relational) 연산자(operator)를 사용할 수 있다.
비교/관계연산자 == (equal sign 2개) 는
왼쪽의 계산 결과값과 오른쪽의 계산 결과값이 같은 경우 True(참)로 계산하고,
그 외의 경우에는 False(거짓)로 계산한다.
비교/관계연산자도 일반적인 사칙연산자처럼 주어진 두 수를 이용해 계산을 수행하고,
그 결과를 True(참), 또는 False(거짓)로 계산해 주는 연산자이다.
비교/관계연산자는 <, >, <=, >=, ==(같다), !=(다르다) 6개가 있다.
** 수학에서 왼쪽과 오른쪽의 계산 결과가 같음(동치)을 나타내는 기호 =(equal sign) 1개는
프로그래밍언어에서는 전혀 다른 의미로 사용된다.
a = 1 와 같은 표현은 a와 1의 값이 같다는 의미가 아니라
오른쪽의 계산 결과값인 1을 왼쪽의 변수 a에 저장하라는 의미이다.
입력
두 정수(a, b)가 공백을 두고 입력된다.
-2147483648 <= a, b <= +2147483647
출력
a와 b의 값이 같은 경우 True 를, 그렇지 않은 경우 False 를 출력한다.
입력 예시
0 0
출력 예시
True
a,b = input().split()
a = int(a)
b = int(b)
if a == b:
print(True)
else:
print(False)
6050 : (생략)
6051 : [기초-비교연산] 정수 2개 입력받아 비교하기
- 두 정수(a, b)를 입력받아
a의 값이 b의 값과 서로 다르면 True 를, 같으면 False 를 출력하는 프로그램을 작성해보자.
입력
두 정수(a, b)가 공백을 두고 입력된다.
-2147483648 <= a, b <= +2147483647
출력
a와 b가 다른 경우 True 를, 그렇지 않은 경우 False 를 출력한다.
입력 예시
0 1
출력 예시
True
a,b = input().split()
a = int(a)
b = int(b)
if a!=b:
print(True)
else:
print(False)
6052 : [기초-논리연산] 정수 입력받아 참 거짓 평가하기
- 정수가 입력되었을 때, True/False 로 평가해주는 프로그램을 작성해보자.
예시
n = int(input())
print(bool(n))
참고
bool( ) 을 이용하면 입력된 식이나 값을 평가해 불 형의 값(True 또는 False)을 출력해준다.
식이나 값을 계산해서 결과값이 만들어지는 것을 평가(evaluate)라고 한다.
python 언어에서 정수값 0은 False(거짓)로 평가되고, 그 외의 값들은 모두 True(참)로 평가된다.
** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로 True(참)/False(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
입력
정수 1개가 입력된다.
출력
입력된 값이 0이면 False, 0이 아니면 True 를 출력한다.
입력 예시
0
출력 예시
False
n = int(input())
print(bool(n))
6053 : [기초-논리연산] 참 거짓 바꾸기
- 정수값이 입력될 때,
그 불 값을 반대로 출력하는 프로그램을 작성해보자.
예시
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(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
입력
정수 1개가 입력된다.
출력
입력된 정수의 불 값이 False 이면 True, True 이면 False 를 출력한다.
입력 예시
1
출력 예시
False
a = bool(int(input()))
print(not a)
6054 : [기초-논리연산] 둘 다 참일 경우만 참 출력하기
- 2개의 정수값이 입력될 때, 그 불 값이 모두 True 일 때에만 True 를 출력하는 프로그램을 작성해보자.
예시
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(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
입력
2개의 정수가 공백을 두고 입력된다.
출력
둘 다 True 일 경우에만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.
입력 예시
1 1
출력 예시
True
a,b = input().split()
print(bool(int(a)) and bool(int(b)))
6055 : [기초-논리연산] 하나라도 참이면 참 출력하기
- 2개의 정수값이 입력될 때,
그 불 값이 하나라도 True 일 때에만 True 를 출력하는 프로그램을 작성해보자.
참고
or 예약어는 주어진 두 불 값 중에서 하나라도 True 이면 True 로 계산하고, 나머지 경우는 False 로 계산한다.
이러한 논리연산을 OR 연산(boolean OR)이라고도 부르고, + 로 표시하거나, 집합 기호 ∪(합집합, union)로 표시하기도 한다.
모두 같은 의미이다.
참, 거짓의 논리값 인 불(boolean) 값을 다루어주는 예약어는 not, and, or 이 있고,
불 값들 사이의 논리(not, and, or) 연산 결과도 마찬가지로 True 또는 False 의 불 값으로 계산된다.
** 불 대수(boolean algebra)는 수학자 불이 만들어낸 것으로 True(참)/False(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
입력
2개의 정수가 공백을 두고 입력된다.
출력
하나라도 참일 경우 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.
입력 예시
1 1
출력 예시
True
a,b = input().split()
print(bool(int(a)) or bool(int(b)))
6056 : [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기
- 2개의 정수값이 입력될 때, 그 불 값(True/False) 이 서로 다를 때에만 True 를 출력하는 프로그램을 작성해보자.
예시
...
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(거짓) 값만 가지는 논리값과 그 값들 사이의 연산을 다룬다.
입력
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))
6057 : [기초-논리연산] 참/거짓이 서로 같을 때에만 참 출력하기
- 2개의 정수값이 입력될 때, 그 불 값(True/False) 이 서로 같을 때에만 True 를 출력하는 프로그램을 작성해보자.
입력
2개의 정수가 공백을 두고 입력된다.
출력
두 값의 True / False 값이 서로 다를 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.
입력 예시
0 0
출력 예시
True
a,b = input().split()
a = bool(int(a))
b = bool(int(b))
if a == b:
print(True)
else:
print(False)
6058 : [기초-논리연산] 둘 다 거짓일 경우만 참 출력하기
- 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(not(a or b))
# 두번째 방법
a,b = input().split()
a = bool(int(a))
b = bool(int(b))
if a == False and b == False:
print(True)
else:
print(False)
출처: CodeUP
'IT > Computer Science' 카테고리의 다른 글
[Blazor, C#] Blazor WebAssembly Blog Series 4 (0) | 2022.02.23 |
---|---|
[Blazor, C#] Blazor WebAssembly Blog Series (1~3) (0) | 2022.02.23 |
[파이썬/Python] CodeUp 파이썬 기초 100제 6032- 6045 (0) | 2022.02.13 |
[파이썬/Python] CodeUp 파이썬 기초 100제 6014 - 6031 (0) | 2022.02.06 |
[Blazor & C# 핸즈온] 페이지, 라우팅 및 레이아웃을 사용하여 Blazor 탐색 개선 (0) | 2021.12.29 |