728x90
https://www.acmicpc.net/problem/2579
2579번: 계단 오르기
계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점
www.acmicpc.net
* 풀이 방법
- 계단은 총 N개이고, 계단을 오르는 방법은 2가지가 있으므로 N*2의 2차원 배열 생성
- 계단을 1개 오르는 경우, 그 전전 계단에서 1개/2개 오르는 경우 둘 중 더 큰 거에 더함
2개 오르는 경우, 그 전 계단의 1개 올랐을 때의 값에 더함
|
10 |
20 |
15 |
25 |
10 |
20 |
1개 |
10 |
20 |
25 (10+15) |
55 (30+25) |
45 (35+10) |
75 (55+20) |
2개 |
10 |
30 (10+20) |
35 (20+15) |
50 (25+25) |
65 (55+10) |
65 (45+20) |
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(), i;
int a[] = new int[n];
for( i = 0; i < n; i++ )
a[i] = sc.nextInt();
sc.close();
int dp[][] = new int[n][2];
for( i = 0; i < n; i++ ) {
dp[i][0] = a[i] + ( i >= 2 ? Math.max( dp[i-2][0], dp[i-2][1] ) : 0 );
dp[i][1] = a[i] + ( i >= 1 ? dp[i-1][0] : 0 );
}
System.out.println( Math.max( dp[n-1][0], dp[n-1][1] ) );
}
}
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 백준 온라인 저지 ( BOJ )' 카테고리의 다른 글
[백준(Baekjoon)][자바(java)] 10844 : 쉬운 계단 수 / 동적 계획법 1 (0) | 2020.06.19 |
---|---|
[백준(Baekjoon)][자바(java)]1463 : 1로 만들기 / 동적 계획법 1 (0) | 2020.06.19 |
[백준(Baekjoon)][자바(java)] 1932 : 정수 삼각형 / 동적 계획법 1 (0) | 2020.06.19 |
[백준(Baekjoon)][자바(java)] 1149 : RGB거리 / 동적 계획법 1 (0) | 2020.06.19 |
[백준(Baekjoon)][자바(java)] 9461 : 파도반 수열 / 동적 계획법 1 (0) | 2020.06.19 |