프로그래머스 세균 증식 자바스크립트 알고리즘 풀이
문제
나의 풀이
아이디어
- 반복문을 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번 곱하는 것과 같은 의미가 된다.