BOJ에서 다음 문제들을 쭉 순서대로 풀어본다. boj.kr/문제번호 <= 형태로 검색하면 된다.
DP - 1463, 11726, 11727, 9095, 10844, 11057, 2193, 9465, 2156, 11053, 11055, 11722, 11054, 1912, 2579, 1699, 2133, 9461, 2225, 2011, 11052
1시간 넘어가면 풀던 짓을 그만두고 반드시 AC받은 코드 찾아보기 (설명이 꼭 달려있는 코드를 읽자)
그리고 푼 다음에는 반드시 다른 사람의 코드를 봐야 한다.
특히 자신만의 가상의 스승을 잡고 그 분의 코드를 보는 것도 좋은 방법이라 생각한다.
너무 갓갓들은 이상한 방식으로도 짜는 경우도 있기 때문에 적당한 사람을 선택해야 한다.
내가 애용하는 IDE 사이트
(IDE 자동 완성이 불가능하기 때문에 사용하는 중)
접근 방법
제시된 3가지 규칙 중, 하나를 선택해 나머지 규칙을 적용합니다.
선택해야 하는 한 가지 규칙은 바로 '반드시 마지막 계단은 밟을 것'.
그렇기 때문에 마지막 계단을 기준으로 규칙을 생각해줍니다.
정답 코드
#include <iostream>
using namespace std;
int arr[300], dp[300];
int Max(int a, int b){
return a > b ? a : b;
}
int main() {
int n;
cin >> n;
for(int i = 1; i <= n; i++){
cin >> arr[i];
}
for(int i = 1; i <= n; i++){
dp[i] = Max(arr[i] + dp[i - 2], arr[i] + arr[i - 1] + dp[i -3]);
}
cout << dp[n];
return 0;
}
참고한 블로그
-
'OLD_알고리즘 > Baekjoon' 카테고리의 다른 글
백준] 2133 : 타일 채우기 (0) | 2020.10.13 |
---|---|
백준] 1699 : 제곱수의 합 (0) | 2020.10.11 |
백준] 1912 : 연속합 (0) | 2020.10.05 |
백준] 11054 : 가장 긴 바이토닉 부분 수열 (0) | 2020.09.24 |
백준] 11722 : 가장 긴 감소하는 부분 수열 (0) | 2020.09.24 |
댓글