메뉴 건너뛰기

Programing

BAEKJOON

1149

관리자 2019.12.21 11:41 조회 수 : 8

C++

#include <cstdio>

#include <cstring>

#include <climits>

#include <algorithm>

using namespace std;

 

int N;

int R[1010],G[1010],B[1010];

int dt[1010][4];

int serch(int idx,int prev){

    if(idx==N+1)

        return 0;

    if(dt[idx][prev]!=-1)

        return dt[idx][prev];

    int a=INT_MAX,b=INT_MAX,c=INT_MAX;

    if(prev!=0){

        a=serch(idx+1,0)+R[idx];

    }

    if(prev!=1){

        b=serch(idx+1,1)+G[idx];

    }

    if(prev!=2){

        c=serch(idx+1,2)+B[idx];

    }

    return dt[idx][prev]=min({a,b,c});

}

int main()

{

    memset(dt,-1,sizeof(dt));

    scanf("%d",&N);

    for(int i=1;i<=N;i++){

        scanf("%d %d %d",&R[i],&G[i],&B[i]);

    }

    printf("%d",serch(1,3));

    return 0;

}

번호 제목 글쓴이 날짜 조회 수
공지 안내사항 관리자 2019.12.21 165
15 14430 관리자 2019.12.21 6
14 1182 관리자 2019.12.21 8
13 11660 관리자 2020.04.11 46
» 1149 관리자 2019.12.21 8
11 10999 관리자 2020.04.11 47
10 10937 관리자 2020.04.11 41
9 10919 관리자 2020.04.11 42
8 10800 관리자 2019.12.21 8
7 10799 관리자 2019.12.21 9
6 10534 관리자 2020.04.11 44
5 10164 관리자 2019.12.21 6
4 10159 관리자 2019.12.21 6
3 10157 관리자 2019.12.21 8
2 10070 관리자 2020.04.11 44
1 1005 관리자 2019.12.21 8
위로