Problem Solving/Baekjoon
[백준] 2705 팰린드롬 파티션 - Dynamic Programming / Java
graycode
2023. 5. 19. 15:10
• 문제 링크
2705번: 팰린드롬 파티션
첫째 줄에 테스트 케이스의 개수 T(1 <= T <= 1,000)가 주어진다. 각 테스트 케이스는 양의 정수 1개로 이루어져있고, 이 수가 문제에서 설명한 N이고, 1,000보다 작거나 같다.
www.acmicpc.net
• 풀이 과정
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
List<Integer> dp = new ArrayList<>();
dp.add(1);
dp.add(2);
while (t-- > 0) {
int n = Integer.parseInt(br.readLine());
for (int i = dp.size(); i < n; i++)
dp.add(dp.get((i - 1) / 2) + dp.get(i - 2));
sb.append(dp.get(n - 1)).append("\n");
}
bw.write(sb.toString());
bw.flush();
}
}