문제

문제 링크
image

나의 풀이

아이디어

  • 반복문을 t회 돌며 n을 2배씩 곱한다.

    코드

    function solution(n, t) {
      let answer = n;
      for(let i = 1; i <= t; ++i) { answer *= 2; }
      return answer;
    }
    

다른 사람 풀이

function solution(n, t) {
  return n << t;
}

비트 연산자로 풀 수 있을 줄이야!!
문제를 식으로 정리하면, n에 2의 t제곱을 곱해주면 된다.
이때 << 비트 연산자로 한 자리만큼 왼쪽으로 시프트해주면 2를 곱하는 것과 같기 때문에,
t만큼 왼쪽으로 시프트해주면 2를 t번 곱하는 것과 같은 의미가 된다.