belgabelga   3년 전

using System;

using System.Text;

public class main_class

{

public static void Main(string[] args)

{

string[] str = Console.ReadLine().Split(' ');

int m = Convert.ToInt32(str[0]);

int n = Convert.ToInt32(str[1]);

int[][] array = new int[m][];

for (int i = 0; i < m; i++)

{

array[i] = new int[n];

for (int k = 0; k < n; k++)

{

array[i][k] = Console.Read() == 'B' ? 0 : 1;

}

Console.Read(); //여기

}

int a = 32;

for (int i = 0; i < m - 7; i++)

{

for (int k = 0; k < n - 7; k++)

{

int A = 0;

for (int I = 0; I < 8; I++)

{

for (int K = 0; K < 8; K++)

{

A += array[i + I][k + K] == (I + K) % 2 ? 1 : 0;

}

}

A = A <= 32 ? A : 64 - A;

a = A < a ? A : a;

}

}

Console.WriteLine(a);

}

}

위 코드에서 주석처리 //여기 부분(Console.Read())이 왜 필요한지 알고 싶습니다.

그리고 왜 32를 기준으로 비교하는지 알고 싶습니다.

svolts   2년 전

8X8크기에서 고치려는 체스판의 위치 개수 값이 최대로 갖을 수 있는 수는 판 전체를 같은 색으로 색칠했을 때 이므로 32를 기준으로 합니다. 

댓글을 작성하려면 로그인해야 합니다.