Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 언리얼엔진구조체
- UML관련
- 프로그래머스
- dataasset
- 람다
- 자료구조
- 람다사용정렬
- 약참조
- BFS
- unorder_map
- stl
- 애셋로드
- 선택정렬
- 알고리즘
- UE4 커스텀로그
- 데이터애셋
- 스마트포인터
- 강참조
- UELOG
- 정렬알고리즘
- C++
- 크리티컬섹션
- map
- C++최적화
- moreeffectiveC++
- 정렬
- 델리게이트
- 언리얼가비지컬렉터
- UE_LOG
- enumasByue
Archives
- Today
- Total
기억을 위한 기록들
[백준 1149: RGB거리] - C++ 본문
#include <iostream>
#include <algorithm>
using namespace std;
int dp[3][1000];
int rgb[3][1000];
int main() {
int n; //집 갯수
cin >> n;
for (int index = 0; index < n; index++)
{
cin >> rgb[0][index]; //R값
cin >> rgb[1][index]; //G값
cin >> rgb[2][index]; //B값
}
dp[0][0] = rgb[0][0];
dp[1][0] = rgb[1][0];
dp[2][0] = rgb[2][0];
for (int index = 1; index < n; index++)
{
dp[0][index] = min({ dp[1][index - 1],dp[2][index - 1] }) + rgb[0][index]; //현재를 r로 칠할 때
dp[1][index] = min({ dp[0][index - 1],dp[2][index - 1] }) + rgb[1][index]; //현재를 g로 칠할 때
dp[2][index] = min({ dp[1][index - 1],dp[0][index - 1] }) + rgb[2][index]; //현재를 b로 칠할 때
}
cout << min({ dp[0][n - 1],dp[1][n - 1] ,dp[2][n - 1] }) << endl;
return 0;
}