Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- FBX
- 1253번
- C++
- UnrealMP
- Linux
- 데이터베이스 배움터
- 1759번
- 백준 1253번
- UActor
- 셰그먼트트리
- 2단계로킹
- 비재귀셰그먼트
- 5639
- OS
- hackerank
- 민겸수
- objtofbx
- 실습
- Unreal
- 언리얼 플러그인
- 의미와 무의미의 경계에서
- 오손데이터읽기
- 트랜잭션 관리
- 언리얼 커스텀 플러그인
- command not found
- oracle
- 1967번
- SQL
- Security
- 백준
Archives
- Today
- Total
fatalite
도둑질 - 프로그래머스 본문
문제
문제 난이도 : 프로그래머스 4단계
문제 분류 : 다이나믹 프로그래밍
문제 리뷰
환형이라서 헛짓거리 하다가...
1시간 20분 만에 아이디어 떠올리고 호다닥 풀었다...
그래도 조금은 성장했나보다 ㅠ

문제 소스 코드
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(vector<int> money) {
int answer = 0;
int n = money.size();
int DP1[1000001];
int DP2[1000001];
// DP[1] = 1
// DP[2] = 2
// DP[3] = 3
// DP[4] = 4
// DP[5] = 8
// 1 2 3 1 5
// 1 2 3 1
// 2 3 1 5
DP1[0] = 0;
DP2[0] = 0;
DP1[1] = money[0];
DP2[1] = money[1];
for(int i = 2; i <= n; i++){
DP1[i] = max(DP1[i - 1] , money[i-1] + DP1[i-2]);
DP2[i] = max(DP2[i - 1] , money[i] + DP2[i-2]);
}
//cout << DP1[n-1];
//cout << DP2[n-1];
return max(DP1[n-1], DP2[n-1]);
}
'코딩 인터뷰 > 프로그래머스' 카테고리의 다른 글
네트워크 - 프로그래머스 (0) | 2023.10.18 |
---|---|
체육복 - 프로그래머스 (0) | 2023.10.17 |
사칙 연산 - 프로그래머스 (0) | 2023.10.15 |
등굣길 - 프로그래머스 (0) | 2023.10.15 |
C++ 주식 가격 [고득점 Kit 스택 / 큐] (0) | 2023.05.13 |