자라는 개발자/문제풀이

백준 c++ 24912 카드 색칠

자란다 2022. 4. 3. 22:55
728x90
반응형

24912 카드색칠

문제 풀이

#include <iostream>
#include <vector>
using namespace std;

void fast_io(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}
int n, arr[1000001];
vector<int> v;
int main()
{
    fast_io();
    cin >> n;
    for (int i = 0; i < n;i++)
      {cin >> arr[i];
        if(!arr[i])
            v.push_back(i);
      }

    for (int i = 0; i < n - 1;i++)
        if(arr[i] && arr[i] == arr[i+1])
        {
            cout << "-1";
            return 0;
        }

    for (int i = 0; i < v.size();i++)
    {
        if(!arr[v[i]])
        {
            for (int j = 1; j < 4;j++)
                if(arr[v[i]-1]!=j && arr[v[i]+1]!=j)
                 {   arr[v[i]] = j;
                     break;}
        }
    }

    for (int i = 0; i < n;i++)
        cout << arr[i] << " ";
}

0이 없는경우에만 종료시켰더니 29점이 나왔다.
왲?? 하고 보니까 서브태스크에 이런저런말이 있길래 다른조건을 추가시켜줬다.

728x90
반응형