CodeLabs

[백준 / C#] 2630 : 색종이 만들기 본문

백준/1000 ~

[백준 / C#] 2630 : 색종이 만들기

무오_ 2023. 8. 4. 22:35
using System;

class Program
{
    static int n = int.Parse(Console.ReadLine());
    static int[,] map = new int[n, n];
    static int[] cnt = new int[2];
    static void Divide(int n, int y, int x)
    {
        for (int i = y; i < y + n; i++)
        {
            for (int j = x; j < x + n; j++)
                if (map[i, j] != map[y, x])
                {
                    Divide(n / 2, y, x);
                    Divide(n / 2, y + n / 2, x);
                    Divide(n / 2, y, x + n / 2);
                    Divide(n / 2, y + n / 2, x + n / 2);
                    return;
                }
        }
        cnt[map[y, x]]++;
    }
    static void Solution()
    {
        Divide(n, 0, 0);
        foreach (int a in cnt)
        {
            Console.WriteLine(a);
        }
    }
    static void Input()
    {
        for (int i = 0; i < n; i++)
        {
            var input = Console.ReadLine().Split();
            for (int j = 0; j < n; j++)
            {
                map[i, j] = int.Parse(input[j]);
            }
        }
    }
    static void Solve()
    {
        Input();
        Solution();
    }
    static void Main(string[] args)
    {
        Solve();
    }
}