less than 1 minute read

세균 증식

문제 설명

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


제한사항

  • 1 ≤ n ≤ 10
  • 1 ≤ t ≤ 15

입출력 예

n t result
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합니다.

나의 풀이 코드

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

두가지 방식으로 풀어보았다.

배운점

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

left shift 연산자로 한칸씩 밀면 2를 곱한것과 같다. 그러면 t만큼 밀어주면 2의 t제곱을 곱한것과 같다.

Leave a comment