Eggs Sunny Side Up
본문 바로가기
Algorithm/Programmers_Java

[Java] 세균 증식_비트연산자

by guswn100059 2023. 4. 10.

문제 설명

어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.


제한사항
  • 1 ≤ n ≤ 10
  • 1 ≤ t ≤ 15

입출력 예ntresult
2 10 2048
7 15 229,376

입출력 예 설명

입출력 예 #1

  • 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.

입출력 예 #2

  • 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ..., 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.

 

for문 이용)

class Solution {
    public int solution(int n, int t) {
        int answer = n;
		
		for(int i = 0; i < t; i++) {
			answer *= 2;
		}
        return answer;
    }
}

 

비트 쉬프트(Shift)연산자 이용)

class Solution {
    public int solution(int n, int t) {
        int answer = 0;

        answer = n << t;

        return answer;
    }
}

<< : 왼쪽으로 이동

>> : 오른쪽으로 이동

>>> : unsigned, 오른쪽으로 이동

 

ex)

int n = 7;

int t = 15;

answer = n << t 일 경우,

(7*1=7, 7*2=14, 7*4=28, 7*8=56,...)

229,376이라는 결과값이 도출됨.

댓글