본문 바로가기
Data structure & Algorithm/Code up

[Code up] 코드업 6046번 문제 풀이(Python)

by LydiaRyu 2022. 7. 17.
반응형

코드업 6046번 문제: 정수 1개 입력받아 2배 곱해 출력하기 (Python)

 

📒 문제 설명

 

정수 1개를 입력받아 2배 곱해 출력해보자.(비트단위 시프트 연산자 이용)

입력 예시

1024

출력 예시

2048

 

😃 문제 풀이

 

n = int(input())

print(n << 1)

 

  • 비트단위 시프트 연산자는 컴퓨터의 비트 단위로 연산하는 형태를 나타내는 것으로 2진수 단위로 값을 왼쪽이나 오른쪽으로 밀어주는 연산자이다. 예를 들어 10을 2진수로 표현하고, 비트단위 시프트 연산자를 적용해보자.

10 진수를 비트로 표현하면 1010이다. 이때 << 기호는 왼쪽으로 이동시킨다는 의미이고, >> 기호는 오른쪽으로 이동시킨다는 의미이다. 따라서, 10 << 1 을 하면 1010을 왼쪽으로 한 칸 이동시켜 10100이 되고 이는 10진수로 20을 나타낸다. 비트는 한 칸 이동하면서 2배 곱으로 증가/감소하기 때문에 왼쪽으로 한 칸 이동하면 2배를 곱하고, 오른쪽으로 이동하면 1/2배를 한 것과 동일하다. 

 

  • 한 개의 정수를 비트단위 시프트 연산자를 이용하여 두 배 곱한 값을 구하는 문제였기 때문에 n << 1으로 출력한다.
728x90

댓글