-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
⚠️ 나의 풀이
- 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으로 초기화해줘야 함.