CodeUp(코드업) 풀이 (1047번)

이 포스팅은 codeup.kr(코드업)의 문제를 Python3로 풀고 정리한 내용입니다.


1047 : [기초-비트시프트연산] 정수 한 개 입력받아 2 곱해 출력하기

문제 설명

정수 한 개를 입력했을 때 2를 곱해 출력하는 프로그램을 작성해보자.
(단, -1073741824 ~ 1073741823)

입력

정수 한 개가 입력된다.
(단, -1073741824 ~ 1073741823)

출력

입력 받은 정수 * 2의 계산 결과가 출력된다.

입력 예시

1024

출력 예시

2048


내 풀이

1
2
3
4
5
try:
num = int(input());
print(num << 1);
except Exception as e:
print(e);
  • 정수*2 의 결과를 출력해도 되지만,
    비트시프트연산자 <<, >>정수를 2배로 곱하거나 나누어 계산해준다.
  • 왼쪽 비트시프트 (<<)가 될 때에는 오른쪽에 0 이 주어진 수 만큼 추가된다.
  • 오른쪽 비트시프트(>>)가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우) 이나 1(음의 정수인 경우)이 주어진 수 만큼 추가된다.

  • 범위(32비트)를 넘어가 이동되는 비트는 삭제된다.

예시

1
2
3
4
5
a = 10;
print(a << 1); #20 이 출력
print(a >> 1); #5 가 출력
print(a << 2); #40 이 출력
print(a >> 2); #2 가 출력

모범 답안

1
2
3
a=input()
n=int(a)
print(n<<1)