예제 1.
// 세균 증식
// 문제 설명
// 어떤 세균은 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) {
return n * (int)Math.pow(2, t);
}
}
예제 2.
public class Main {
public static void main(String[] args) {
int n = 2;
int t = 10;
System.out.println(solution(n, t));
// 출력값 : 2048
}
public static int solution(int n, int t) {
return n * (int)Math.pow(2, t);
}
}
두가지 예제에서 보아 알 수 있듯이
Math.pow()메서드는 반환 데이터형이 double이기 때문에 캐스팅과정을 통해 int형으로 바꿔줘야 정수와 곱해서 계산할 수 있습니다.
ES6 이후로 ** 연산자를 통해 계산이 가능하므로 생략,
굳이 사용해야 한다해도 자바의 Math.pow()에서 형변환이 생략되었으므로 오히려 편함