상세 컨텐츠

본문 제목

코드업 100제 6041번 ~ 6050번 (Python) - 46, 47번 - 비트시프트 연산, ☆48번 - java랑 다른 조건문 형태

문제 해결/코드업 100제

by NayC 2021. 6. 13. 13:18

본문

728x90

41번 - 정수 2개 입력받아 나눈 나머지 계산하기

 

나머지 연산자는 % 


42번 - 실수 1개 입력받아 소숫점이하 자리 변환하기

format(수, ".2f") 를 사용하면 원하는 자리까지의 정확도로 반올림 된 실수 값을 만들어 준다.

여기서 만들어진 값은 소수점 아래 3번째 자리에서 반올림한 값이다.

 

cf) 2f의 f는 자료형(float)을 말해주는 것

 

 

 

cf) 내가 틀린 거

한 개 입력 받을 때는 map x


43번 - 실수 2개 입력받아 나눈 결과 계산하기


44번 - 정수 2개 입력받아 자동 계산하기


45번 - 정수 3개 입력받아 합과 평균 출력하기

 

ㅡㅡㅡㅡㅡ

cf) 처음 내가 해서 틀린 거

-> 빈 공백을 두고 출력하는걸 신경써서 sep을 넣어줬었는데 오류가 남

오류나는 이유 -> f2가 아니라 2f임 

 

고쳐서 다시 해보면

-> 되려 공백이 없게 나오게 하는거라는거! 


46번 - 비트시프트 연산 : 정수 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 = 10.0 으로 작성해 넣으면 자동으로 실수 값으로 저장된다.
n = 0o10 으로 작성해 넣으면 8진수(octal) 10으로 인식되어 10진수 8값이 저장되고,
n = 0xf 나 n = 0XF 으로 작성해 넣으면 16진수(hexadecimal) F로 인식되어 10진수 15값으로 저장된다.

** python에서 실수 값에 대한 비트시프트 연산은 허용되지 않고 오류가 발생한다.
(실수 값도 컴퓨터 내부적으로는 2진수 형태로 저장되고 비트시프트 처리가 될 수 있지만, python 에서는 허용하지 않는다.)

 


47번 - 비트시프트 연산 : 2의 거듭제곱 배로 곱해 출력하기

문제에서 바란 식은 아래거
이거 보면 이해됨


48번 - 정수 2개 입력받아 비교하기1

내가 java에 익숙해서 이런 실수가...ㅎㅎ
파이썬은 이렇게

ㅡㅡㅡㅡㅡ

 

더 간단하게 해줄 수 있다. 

2번 방법의 결과물은 오른쪽

print()를 마치 조건문처럼 활용을


49번 - 정수 2개 입력받아 비교하기2

비교/관계연산자는 <, >, <=, >=, ==(같다), !=(다르다) 6개가 있다.

** 수학에서 왼쪽과 오른쪽의 계산 결과가 같음(동치)을 나타내는 기호 =(equal sign) 1개는
프로그래밍언어에서는 전혀 다른 의미로 사용된다.

 

a = 1 와 같은 표현은 a와 1의 값이 같다는 의미가 아니라 오른쪽의 계산 결과값인 1을 왼쪽의 변수 a에 저장하라는 의미이다.

 

비교/관계연산자 == (equal sign 2개) 는 왼쪽의 계산 결과값과 오른쪽의 계산 결과값이 같은 경우 True(참)로 계산하고,
그 외의 경우에는 False(거짓)로 계산한다.


50번 - 정수 2개 입력받아 비교하기3

작다(<)/크다(>)/다르다(!) 기호는 등호(=)와 함께 왼쪽에 붙여써야 한다.

 

 

 

728x90
반응형

관련글 더보기