File tree Expand file tree Collapse file tree
백준/Silver/9095. 1, 2, 3 더하기 Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import java .io .BufferedReader ;
2+ import java .io .InputStreamReader ;
13import java .util .*;
2- import java .io .*;
34
45public class Main {
5- public static void main (String [] args ) throws Exception {
6- BufferedReader reader = new BufferedReader (new InputStreamReader (System .in ));
7- int t = Integer .parseInt (reader .readLine ());
8- int [] dp = new int [11 ];
9- dp [1 ] = 1 ;
10- dp [2 ] = 2 ;
11- dp [3 ] = 4 ;
6+ private static int count = 0 ;
127
13- for (int i = 4 ; i < 11 ; i ++) {
14- dp [i ] = dp [i -1 ] + dp [i -2 ] + dp [i -3 ];
8+ public static void main (String [] args ) throws Exception {
9+ // System.setIn(new FileInputStream("input.txt")); // 제출 시 이 줄만 주석처리
10+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
11+ int T = Integer .parseInt (br .readLine ());
12+
13+ for (int i = 1 ; i <= T ; i ++) {
14+ int target = Integer .parseInt (br .readLine ());
15+
16+ count = 0 ;
17+ dfs (1 , target );
18+ dfs (2 , target );
19+ dfs (3 , target );
20+ System .out .println (count );
21+ }
1522 }
1623
17- for (int tc = 0 ; tc < t ; tc ++){
18- int n = Integer .parseInt (reader .readLine ());
19- System .out .println (dp [n ]);
20- }
21- }
24+ public static void dfs (int sum , int target ) {
25+ if (sum > target ) {
26+ return ;
27+ }
28+ if (sum == target ) {
29+ count ++;
30+ return ;
31+ }
32+
33+ dfs (sum + 1 , target );
34+ dfs (sum + 2 , target );
35+ dfs (sum + 3 , target );
36+ }
2237}
Original file line number Diff line number Diff line change 44
55### 성능 요약
66
7- 메모리: 14176 KB, 시간: 132 ms
7+ 메모리: 14100 KB, 시간: 104 ms
88
99### 분류
1010
1111다이나믹 프로그래밍
1212
13+ ### 제출 일자
14+
15+ 2026년 1월 13일 21:26:50
16+
1317### 문제 설명
1418
1519<p >정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.</p >
You can’t perform that action at this time.
0 commit comments