Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- mlflow
- 도커로 깃블로그 만들기
- NLinear
- DataProcessing
- RL
- 오토트레이딩
- 불법마약특별단속 #부산지방경찰청
- 프레딧
- DLInear
- de
- TimeSeries
- express
- HY7714
- 강화학습으로주식하기
- node.js
- 엠프로
- 프로바이오틱스
- 제발쉽게좀가르치자
- 흥미붙이기
- ML
- socket.io
- MPRO
- 벨만방정식
- pandas
- LTSF
- DL
- transformer
- YOLO
- 강화학습
- AI
Archives
- Today
- Total
상황파악
백준 - 1149 RGB 거리 본문
주의해야할 점은 직전에 사용한 색과 연속되어서는 안된다는 점이다
따라서 직전에 사용된 색을 제외한 나머지 경우를 계산하면서 진행한다
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int count, r, g, b;
int v[3][1001];
cin >> count;
v[0][0]=0;
v[0][1]=0;
v[0][2]=0;
for (int i=1;i<=count;i++){
cin >> r >> g >> b;
v[0][i] = min(v[1][i-1],v[2][i-1]) + r;
v[1][i] = min(v[0][i-1],v[2][i-1]) + g;
v[2][i] = min(v[0][i-1],v[1][i-1]) + b;
}
cout << min(v[0][count],min(v[1][count],v[2][count]));
return 0;
}
내가 작성한 코드를 그림으로 표현하면 다음과 같다
인덱스가 1부터 시작되는 이유는 편의를 위해서다
1번째 인덱스는 0에서 값을 가져와 계산하는데, 인덱스 0에는 0이 들어있기 때문에 그림에서는 표현하지 않았다
입력을 받음과 동시에 연속되는 색상을 제외한 경우 중 작은 수를 선택하여 누적값을 계산하는 과정을 반복한다
계산하여 마지막엔 최종 값이 가장 작은 값을 출력한다
'백준' 카테고리의 다른 글
백준 2839번: 설탕 배달 (0) | 2021.01.11 |
---|---|
백준 1032: 명령 프롬프트 (0) | 2021.01.04 |