어떤 세균은 1시간에 두배만큼 증식한다고 합니다.
처음 세균의 마리수
n
과 경과한 시간 t
가 매개변수로 주어질 때 t
시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.class Solution {
public int solution(int n, int t) {
int answer = 0;
for(int i = 0; i < t; i++){
n *= 2;
answer = n;
}
return answer;
}
}
해당 문제를 보았을 때 시간 t 에 따라서
세균 마리수 n 이 곱하기 2가 되어야 된다고 생각했습니다.
해당 진행방식을 어떻게 구현해야 할까 고민했고,
시간이 지나는 것을 for문을 통해서
0부터 시작해서 주어진 시간 t 까지 증식이 진행되도록
해야한다고 생각했습니다.
그래서 위의 코드에서 for문을 통해서 0부터 t까지 시간의 흐름을 만들고
n이 2와 곱해지고 그 값이 계속 곱하기 2 되는 방식을 만들었습니다.
문제를 해결한 이후, 다른 방법이 있을까 생각이 들어 찾아본 결과
class Solution {
public int solution(int n, int t) {
return n * (int)Math.pow(2, t);
}
해당 코드를 사용한 사람의 글을 보았습니다.
해당 코드에서는
Math.pow 메서드를 사용하였는데, 이 메서드는 제곱근 함수를 진행하도록 되어있었습니다.
입력된 n 값에 t 시간동안 2배씩 증가하도록 매개변수를 주어 답을 진행한 것으로 확인했습니다.
새로운 함수
Math.pow( );
Share article