🚶♂️ [2579] 계단 오르기
난이도: 실버 3
소요 시간: 35분
메모리: 11552KB
시간: 72ms
- DP는 어려운데,, 재밌다,,
- 풀이법이 생각나면 기분이 매우매우 좋다.!!!🤩
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main_2579_계단오르기 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine().trim());
if (N == 1) {
System.out.print(br.readLine());
} else {
int[][] stairs = new int[N + 1][2];
for (int n = 1; n <= N; n++) {
stairs[n][0] = stairs[n][1] = Integer.parseInt(br.readLine().trim());
}
stairs[1][1] = 0;
stairs[2][0] += stairs[1][0];
for (int n = 3; n <= N; n++) {
stairs[n][0] += stairs[n - 1][1];
stairs[n][1] += Math.max(stairs[n - 2][0], stairs[n - 2][1]);
}
System.out.print(Math.max(stairs[N][0], stairs[N][1]));
}
}
}