티스토리 뷰
출저 : https://www.acmicpc.net/problem/2579
"DP 쓸 때, dp값과 map에 값을 활용해보자.."
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static int N; static int[] dp; static int[] map; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); dp = new int[N]; map = new int[N]; for (int i = 0; i < N; i++) { map[i] = Integer.parseInt(br.readLine()); } if(N == 1) { System.out.println(map[0]); return ; } else if (N == 2) { System.out.println(map[0]+map[1]); return ; } // dp 초기값 dp[0] = map[0]; dp[1] = map[0]+map[1]; dp[2] = Math.max(map[0] + map[2] , map[1] + map[2]); // 점화식 // dp[n] = dp[n-3] + map[n-1] + map[n] // dp[n] = dp[n-2] + map[n] for (int i = 3; i < N; i++) { dp[i] = Math.max(dp[i-3] + map[i-1], dp[i-2]) + map[i]; } System.out.println(dp[N-1]); } } | cs |
'Study > 알고리즘 문제풀이' 카테고리의 다른 글
백준 2234. 성곽 :: 돼지개발자 (0) | 2019.02.07 |
---|---|
백준 1463. 1로 만들기 :: 돼지개발자 (0) | 2019.02.01 |
백준 1149. RGB거리 :: 돼지개발자 (0) | 2019.02.01 |
백준 1003. 피보나치 함수 :: 돼지개발자 (0) | 2019.02.01 |
백준 15685. 드래곤 커브 :: 돼지개발자 (0) | 2019.01.31 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday