ALGORITHM/BOJ
[DP 연습] BOJ_9095 1,2,3 더하기 (S3)
lemon-scone
2021. 9. 21. 19:34
https://www.acmicpc.net/problem/9095
9095번: 1, 2, 3 더하기
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
www.acmicpc.net
그래도 이건 저번 스터디에서 발표한 경험이 있어서 아직 기억이 남아가지고 쉽게 풀 수 있었다!
같은 DP문제여도 기존 항을 활용해서 문제푸는 것 같은 보다 가시적인 이런 문제들은 이해가 조금이라도 가지만, 전에 풀었던 1만들기 문제같은 유형은 아직까지 잘 이해가 안되는 것으로 보아 DP 공부의 길은 참 멀기도 먼데 험한 것 같다.
package algo0919;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 1,2,3 더하기
public class BOJ_9095 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int TC = Integer.parseInt(br.readLine());
for (int tc = 1; tc <= TC; tc++) {
int N = Integer.parseInt(br.readLine());
int[] memo = new int[N+1];
memo[0] = 0;
memo[1] = 1;
memo[2] = 2;
memo[3] = 4;
for (int i = 4; i < memo.length; i++) {
memo[i] = memo[i-1] + memo[i-2] + memo[i-3];
}
sb.append(memo[N]).append("\n");
}
System.out.println(sb.toString());
}
}
