[백준][Java] 2579번 계단 오르기 (DP)

[백준][Java] 2579번 계단 오르기 (DP)

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

public class Main {

private static BufferedReader br = new BufferedReader( new InputStreamReader( System . in ));

private static BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( System . out ));

public static void main( String [] args) throws IOException{

int N = Integer. parseInt (br.readLine());

int [] score = new int [N + 1 ];

for ( int i = 1 ; i < = N; i + + ) {

score[i] = Integer. parseInt (br.readLine());

}

int [] DP = new int [N + 1 ];

DP[ 1 ] = score[ 1 ];

if (N > = 2 ) {

DP[ 2 ] = score[ 1 ] + score[ 2 ];

}

for ( int i = 3 ; i < = N; i + + ) {

DP[i] =

Math.max(DP[i - 1 ] + score[i - 1 ],

DP[i - 2 ] + score[i - 2 ])

+ score[i];

DP[i] = Math.max(

DP[i - 2 ],

DP[i - 3 ] + score[i - 1 ])

+ score[i];

// System.out.println(DP[i]);

}

System . out . println (DP[N]);

// bw.write("");

// bw.flush();

// bw.close();

}

}

from http://aig2029.tistory.com/275 by ccl(A) rewrite - 2021-09-12 05:01:46