프로그래밍/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 중 최솟값을 출력하면 됩니다.
[소스 코드]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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; | |
} |
★ 틀린 점이 있다면 알려주세요~!