Skip to content

[다이나믹] BOJ#1149 - RGB거리 #3

@ye-yo

Description

@ye-yo

⚠️ 나의 풀이

  • rgb의 3가지 데이터를 어떤 식으로 저장할지 감이 잡히지 않았음.
  • 양쪽 집과 색이 겹치지 않도록 색칠하기 위해서 어떻게 체크해야 하는지 고민해보았으나 해결하지 못함.

❗️ 오답 원인 분석

  • 문제에서 i번째 집은 i-1, i+1의 집과 색이 같지 않아야 한다고 나와있는데 이걸 간단하게 말하면 i번째 집은 i-1집과 색이 같지 않아야 한다는 것과 같음. 어렵게 생각하지 않고 간단한 식으로 생각하는 연습이 필요해 보임.

🔑 풀이 핵심

  • rgb 값을 저장하기 위해 2차원 배열 사용
arr[i][0] = 
arr[i][1] = 
arr[i][2] = 
  • 입력받음과 동시에 계산 가능
for(int i = 1; i< n; i++){
        cin >> cost[0] >> cost[1] >> cost[2]; 
        arr[i][0] = min(arr[i-1][1],arr[i-1][2]) + cost[0];
        arr[i][1] = min(arr[i-1][0],arr[i-1][2]) + cost[1];
        arr[i][2] = min(arr[i-1][1],arr[i-1][0]) + cost[2];
    }
  • for문 안에서 i-1을 참조하므로 i는 1보다 커야하고, arr[0][?]을 0으로 초기화해줘야 함.

Metadata

Metadata

Assignees

Labels

1차 성공다시 문제를 풀어서 성공함풀이미흡제대로 풀이하지 못함.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions