알고리즘
[Java] 프로그래머스 세균 증식
개발자 박현준
2023. 1. 31. 20:25
728x90
문제 설명
어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 10
- 1 ≤ t ≤ 15
입출력 예
입출력 예 설명
입출력 예 #1
- 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.
입출력 예 #2
- 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ..., 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.
코드 설명
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Solution {
public int solution(int n, int t) {
int answer = 0;
for (int i = 0; i < t; i++) {
answer = n * 2;
n = answer;
}
return answer;
}
// public static void main(String[] args) {// Scanner 방식
// Solution T = new Solution();
// Scanner sc = new Scanner(System.in);
// int n = sc.nextInt();
// int t = sc.nextInt();
// System.out.println(T.solution(n, t));
// sc.close();
// }
public static void main(String[] args) throws IOException {// BufferedReader 방식
Solution T = new Solution();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int t = Integer.parseInt(br.readLine());
System.out.println(T.solution(n, t));
br.close();
}
}
ex) n = 2, t = 5 일 때
for (int i = 0; i < t; i++) { // t 만큼 반복, 0 ~ 4 5번 반복
answer = n * 2; // answer = n * 2를 해주고, 2 * 2 = 4, 4 * 2 = 8, 8 * 2 = 16, 16 * 2 = 32, 32 * 2 = 64
n = answer; // n = answer를 저장, n = 4, n = 8, n = 16, n = 32, n = 64
}
answer = 64
728x90