혜랑's STORY

[BOJ_C++] 1149번 : RGB 거리 본문

무지성 공부방/알고리즘 해결

[BOJ_C++] 1149번 : RGB 거리

hyerang0125 2021. 8. 10. 22:55

code

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <cstring>
#include <stack>
#include <vector>
#include <cmath>
#include <string>

using namespace std;
int h[1001][3];

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    h[0][0] = h[0][1] = h[0][2] = 0;

    int n; cin >> n;
    int temp1, temp2, temp3;
    for (int i = 1; i <= n; i++) {
        cin >> temp1 >> temp2 >> temp3;
        h[i][0] = min(h[i - 1][1], h[i - 1][2]) + temp1;
        h[i][1] = min(h[i - 1][0], h[i - 1][2]) + temp2;
        h[i][2] = min(h[i - 1][1], h[i - 1][0]) + temp3;
    }
    printf("%d", min(h[n][0], min(h[n][1], h[n][2])));
    return 0;
}
  • 어떤 집이 빨간색이라면 뒤엔 초록색 또는 파란색이 된다.
  • 즉, 각 색에 대한 최소값을 구하고 이 중 최소값을 출력하면 된다.

결과