프로그래밍/Baekjoon Online Judge

[백준] #1149 : RGB거리

동동매니저 2022. 4. 11. 18:34

★ solved.ac 난이도 : S1

(작성 시점 기준)


[문제 본문 링크]

 

1149번: RGB거리

첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나

www.acmicpc.net


★ 풀이

N×3 크기의 2차원 배열을 만들고 반복문을 수행하면서 점화식을 따라 계산하면 됩니다.

  • R : 이전 요소의 G, B 중 최솟값을 더함
  • G : 이전 요소의 R, B 중 최솟값을 더함
  • B : 이전 요소의 R, G 중 최솟값을 더함

최종적으로 계산된 R, G, B 중 최솟값을 출력하면 됩니다.


[소스 코드]

#include <bits/stdc++.h>
using namespace std;
int rgb[1024][3];
int main(void){
int N;
scanf("%d",&N);
for(int i=0;i<N;i++) scanf("%d %d %d",&rgb[i][0],&rgb[i][1],&rgb[i][2]);
for(int i=1;i<N;i++){
rgb[i][0]+=min(rgb[i-1][1],rgb[i-1][2]);
rgb[i][1]+=min(rgb[i-1][0],rgb[i-1][2]);
rgb[i][2]+=min(rgb[i-1][0],rgb[i-1][1]);
}
printf("%d\n",min(min(rgb[N-1][0],rgb[N-1][1]),rgb[N-1][2]));
return 0;
}
view raw BOJ_01149.cc hosted with ❤ by GitHub

★ 틀린 점이 있다면 알려주세요~!