백준
백준 동적계획법 - 2579번 : 계단 오르기
맴썰
2022. 2. 17. 21:30
https://www.acmicpc.net/problem/2579
2579번: 계단 오르기
계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int[] stair = new int[n+1];
int[] memo = new int[n+1];
for(int i=1; i<=n; i++) {
st = new StringTokenizer(br.readLine());
stair[i] = Integer.parseInt(st.nextToken());
}
memo[1] = stair[1];
if(n>=2) {
memo[2] = stair[2]+stair[1];
if(n>=3) {
memo[3] = Math.max(stair[2], stair[1])+stair[3];
if(n>=4) {
for(int i=4; i<=n; i++) {
memo[i] = Math.max(memo[i-3]+stair[i-1], memo[i-2])+stair[i];
}
}
}
}
bw.write(memo[n]+"");
bw.close();
}
}