[C++] 백준 1149 RGB거리

2024. 6. 4. 17:26·Algorithm/Baekjoon
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

int main() 
{
    int n;
    cin >> n;
    vector<int> house(3, 0);

    for (int i = 0; i < n; i++) 
    {
        int color[3];
        int result[3];
        cin >> color[0] >> color[1] >> color[2];

        result[0] = min(house[1] + color[0], house[2] + color[0]);
        result[1] = min(house[0] + color[1], house[2] + color[1]);
        result[2] = min(house[0] + color[2], house[1] + color[2]);

        house[0] = result[0];
        house[1] = result[1];
        house[2] = result[2];
    }

    cout << min({ house[0], house[1], house[2] });

    return 0;
}

 

문제의 단서

- N만큼의 집

- 빨강, 초록, 파랑의 3가지색

- 색에 대한 정보를 합쳤을 때 색마다 -+1에 있는 집과 색이 달라야한다.

 

풀이

1. 3개의 색깔과 색깔 * n만큼의 색깔 칠하기 입력이 이뤄진다. 여기서 경우의 수를 따져본다.

1번째 줄

A / B / C

2번째 줄

(B,C) A / (A,C) B / (A,B) C

3번째 줄

A : (A,C), B / ((A,B), C

B : (B,C) A / (A,B) C

C : (A,C), B / (B,C) A

 

2. 점화식을 세워보자

A는 C와 B에 적립된 값중 작은 값,

B는 A와 C에 적립된 값중 작은 값,

C는 A와 B에 적립된 값중 작은 값을 불러오는 걸 확인할 수가 있다.

 

3. 최종적으로 3가지의 적립된 값중에 작은 값을 출력하면 된다.

 

느낀점

빠르게 규칙을 찾는 것이 dp를 빠르게 해결하는 방법인 것같다. 그 과정을 빠르게 찾는 방법은 그냥 모든 경우의 수를 경우에 따라 3~5번째 정도까지 직접 해보면 규칙성이 나타난다. 더 어려운 문제에서는 다를 수도 있겠다.

 

https://www.acmicpc.net/problem/1149

 

저작자표시 (새창열림)

'Algorithm > Baekjoon' 카테고리의 다른 글

[JAVA] 백준 색종이 만들기  (0) 2024.12.03
[java] 백준 11047 동전 0  (0) 2024.06.24
[C++] 백준 2156 포도주 시식  (0) 2024.05.29
[C++] 백준 1912 연속합  (0) 2024.05.27
[C++] 백준 9935 문자열 폭발  (0) 2024.05.15
'Algorithm/Baekjoon' 카테고리의 다른 글
  • [JAVA] 백준 색종이 만들기
  • [java] 백준 11047 동전 0
  • [C++] 백준 2156 포도주 시식
  • [C++] 백준 1912 연속합
chanheess
chanheess
'왜' 그렇게 했는가?에 대한 생각으로 공부 및 작업의 저장관리
  • chanheess
    왜 그렇게 생각했는가?
    chanheess
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Backend Programming
      • Game Programming
        • Unreal
        • DirectX
      • C++
        • Memo
        • Basic
        • Effective Modern
      • Algorithm
        • Memo
        • Baekjoon
        • Programmers
        • HackerRank, LeetCode
      • Data Structure
      • Design Pattern
      • Etc
        • Memo
        • Daily Log
        • Book
  • 최근 글

  • 최근 댓글

  • 태그

    티스토리챌린지
    dfs
    dp
    JWT
    spring
    위클리 챌린지
    알고리즘
    백준
    오블완
    프로그래머스
    SpringSecurity
    JPA
    Java
    c++ 기초 플러스
  • hELLO· Designed By정상우.v4.10.0
chanheess
[C++] 백준 1149 RGB거리
상단으로

티스토리툴바