problem solving
1149번: RGB거리
Shinuk Yi
2020. 2. 19. 12:37
가장 익숙해지지 않는 dp문제
#include <iostream>
#include <vector>
int main(void) {
int len;
std::cin >> len;
int val[1001][3] = { 0 };
for (int i = 0; i < len; i++) {
for (int j = 0; j < 3; j++) {
std::cin >> val[i][j];
}
}
int store[3] = { 0 };
int red, green, blue;
red = val[0][0];
green = val[0][1];
blue = val[0][2];
for (int i = 1; i < len; i++) {
store[0] = val[i -1][0], store[1] = val[i - 1][1], store[2] = val[i - 1][2];
val[i][0] += store[1] > store[2] ? store[2] : store[1];
val[i][1] += store[0] > store[2] ? store[2] : store[0];
val[i][2] += store[0] > store[1] ? store[1] : store[0];
}
red = val[len - 1][0], green = val[len - 1][1], blue = val[len - 1][2];
int result = (red > green ? green : red) > blue ? blue : (red > green ? green : red);
std::cout << result << "\n";
return 0;
}
|
cs |