File tree Expand file tree Collapse file tree
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 ;
3+
4+ public class Main {
5+ public static void main (String [] args ) throws Exception {
6+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
7+ int n = Integer .parseInt (br .readLine ().trim ());
8+ final int MOD = 10007 ;
9+
10+ if (n == 1 ) {
11+ System .out .println (1 );
12+ return ;
13+ }
14+
15+ int [] dp = new int [n + 1 ];
16+ dp [1 ] = 1 ;
17+ dp [2 ] = 3 ;
18+
19+ for (int i = 3 ; i <= n ; i ++) {
20+ dp [i ] = (dp [i - 1 ] + 2 * dp [i - 2 ]) % MOD ;
21+ }
22+
23+ System .out .println (dp [n ]);
24+ }
25+ }
Original file line number Diff line number Diff line change 1+ import java .io .*;
2+ import java .util .*;
3+
4+ public class Main {
5+ public static void main (String [] args ) throws Exception {
6+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
7+ int n = Integer .parseInt (br .readLine ().trim ());
8+ int [] arr = new int [n ];
9+ StringTokenizer st = new StringTokenizer (br .readLine ());
10+ for (int i = 0 ; i < n ; i ++) arr [i ] = Integer .parseInt (st .nextToken ());
11+
12+ int cur = arr [0 ]; // i에서 끝나는 최대 연속합
13+ int ans = arr [0 ]; // 전체 최대값
14+ for (int i = 1 ; i < n ; i ++) {
15+ cur = Math .max (arr [i ], cur + arr [i ]);
16+ ans = Math .max (ans , cur );
17+ }
18+ System .out .println (ans );
19+ }
20+ }
Original file line number Diff line number Diff line change 1+ import java .io .*;
2+ import java .util .*;
3+
4+ public class Main {
5+ public static void main (String [] args ) throws Exception {
6+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
7+ int n = Integer .parseInt (br .readLine ().trim ());
8+ int [] a = new int [n + 1 ];
9+ for (int i = 1 ; i <= n ; i ++) {
10+ a [i ] = Integer .parseInt (br .readLine ().trim ());
11+ }
12+
13+ if (n == 1 ) {
14+ System .out .println (a [1 ]);
15+ return ;
16+ }
17+ if (n == 2 ) {
18+ System .out .println (a [1 ] + a [2 ]);
19+ return ;
20+ }
21+
22+ int [] dp = new int [n + 1 ];
23+ dp [1 ] = a [1 ];
24+ dp [2 ] = a [1 ] + a [2 ];
25+
26+ for (int i = 3 ; i <= n ; i ++) {
27+ dp [i ] = Math .max (
28+ dp [i - 1 ],
29+ Math .max (dp [i - 2 ] + a [i ], dp [i - 3 ] + a [i - 1 ] + a [i ])
30+ );
31+ }
32+ System .out .println (dp [n ]);
33+ }
34+ }
You can’t perform that action at this time.
0 commit comments