[CodeUp 기초 100제] 6046번 풀이 with 파이썬(python)

Jeony·2021년 9월 9일
0

codeup 기초 100제

목록 보기
46/98
post-thumbnail

문제

비트시프트연산

정수 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 가 출력된다.

입력 예시

1024

출력 예시

2048

답안

모델 답안

n = int(input())
print(n<<1)

내 답안

n = int(input())
result = n << 1
print(result)

풀이

내 풀이

input(): 프롬프트를 띄워서 사용자의 입력 받을 수 있게 해준다.
(단, 입력 받은 것은 문자열로 저장된다. print(type()))으로 type() 괄호 안에 변수를 넣고 찍으면 정수인지, 문자열인지, 무슨 타입인지 확일 할 수 있다!)

int(): 위의 input()에서 말했듯이 input으로 받은 값은 문자열로 저장된다.
산술을 하기 위해, 문자열을 정수로 변환시켜주는 int()를 써서 변환시켜준다.

<<(왼쪽 비트시프트 연산자): 수를 곱해주는 연산자 (내부로는 컴퓨터 언어인 2진수 뒤에 0을 붙이는 방식)
2 << 1 = 4
2 << 2 = 8
2 << 3 = 16

print(): 괄호 안의 내용을 출력!

TIL(오늘 배운 것)

<<(왼쪽 비트시프트 연산자):

수를 곱해주는 연산자 (내부로는 컴퓨터 언어인 2진수 맨 뒤에 0을 붙이는 방식)
2 << 1 = 4
2 << 2 = 8
2 << 3 = 16

ex)
2의 2진수 표현은 0010
2 << 1 = 4
0010 + 0 = 0000 0100 = 0100 = 4

>>(오른쪽 비트시프트 연산자)

수를 나누어주는 연산자 (내부로는 컴퓨터 언어인 2진수 맨 뒤에 0을 빼는 방식)
2 >> 1 = 1
2 >> 2 = 0
2 >> 3 = 0

ex)
2의 2진수 표현은 0010
2 >> 1 = 4
0010 - 0 = 0001

profile
알고리즘으로 문제를 해결하다가 포기함

0개의 댓글