반응형
완전 탐색으로 간단히 풀 수 있었다.
#include<iostream>
using namespace std;
int N;
int arr[21][21];
int main(void)
{
cin >> N;
for (int i = 1; i <= N; i++)
{
for (int j = 1; j <= N; j++)
{
cin >> arr[i][j];
}
}
int mina = 987654321;
for (int i = 1; i <= N; i++)
{
for (int j = 1; j <= N; j++)
{
for (int d1 = 1; d1 <= N; d1++)
{
for (int d2 = 1; d2 <= N; d2++)
{
if (1 <= i && i < i + d1 + d2 && i + d1 + d2 <= N && 1 <= j - d1 && j - d1 < j && j < j + d2 && j + d2 <= N)
{
int area[21][21];
for (int i = 1; i <= N; i++)
{
for (int j = 1; j <= N; j++)
{
area[i][j] = 0;
}
}
int r = i;
int c = j;
while (r <= i + d1 && c >= j - d1)
{
area[r][c] = 5;
r++;
c--;
}
r = i;
c = j;
while (r <= i + d2 && c <= j + d2)
{
area[r][c] = 5;
r++;
c++;
}
r = i + d1;
c = j - d1;
while (r <= i + d1 + d2 && c <= j - d1 + d2)
{
area[r][c] = 5;
r++;
c++;
}
r = i + d2;
c = j + d2;
while (r <= i + d2 + d1 && c >= j + d2 - d1)
{
area[r][c] = 5;
r++;
c--;
}
for (int r = 1; r < i + d1; r++)
{
for (int c = 1; c <= j; c++)
{
if (area[r][c] == 5)
{
break;
}
area[r][c] = 1;
}
}
for (int r = 1; r <= i + d2; r++)
{
for (int c = N; c >= j+1; c--)
{
if (area[r][c] == 5)
{
break;
}
area[r][c] = 2;
}
}
for (int r = i + d1; r <= N; r++)
{
for (int c = 1; c < j - d1 + d2; c++)
{
if (area[r][c] == 5)
{
break;
}
area[r][c] = 3;
}
}
for (int r = i + d2 + 1; r <= N; r++)
{
for (int c = N; c >= j -d1 +d2; c--)
{
if (area[r][c] == 5)
{
break;
}
area[r][c] = 4;
}
}
int count[6];
for (int k = 1; k <= 5; k++)
{
count[k] = 0;
}
for (int r = 1; r <= N; r++)
{
for (int c = 1; c <= N; c++)
{
if (area[r][c] == 1)
{
count[1] += arr[r][c];
}
else if (area[r][c] == 2)
{
count[2] += arr[r][c];
}
else if (area[r][c] == 3)
{
count[3] += arr[r][c];
}
else if (area[r][c] == 4)
{
count[4] += arr[r][c];
}
else if (area[r][c] == 5 || area[r][c] == 0)
{
count[5] += arr[r][c];
}
}
}
int maxb = 0;
int minb = 987654321;
for (int k = 1; k <= 5; k++)
{
if (maxb < count[k])
{
maxb = count[k];
}
if (minb > count[k])
{
minb = count[k];
}
}
if (mina > maxb - minb)
{
mina = maxb - minb;
}
}
}
}
}
}
cout << mina << endl;
}
반응형
'Algorithm' 카테고리의 다른 글
6731. 홍익이의 오델로 게임 (0) | 2020.04.24 |
---|---|
백준 2110번 공유기 설치 (0) | 2020.04.23 |
6719. 성수의 프로그래밍 강좌 시청 (0) | 2020.04.22 |
4613. 러시아 국기 같은 깃발 (0) | 2020.04.21 |
1238. [S/W 문제해결 기본] 10일차 - Contact (0) | 2020.04.20 |