문제출처 : https://www.acmicpc.net/problem/14711
code
#include <iostream>
using namespace std;
char arr[1002][1002];
int main()
{
int N, i, j;
for (i = 0; i < 1002; i++)
for (j = 0; j < 1002; j++)
arr[i][j] = '.';
cin >> N;
for (i = 1; i < N+1; i++)
cin >> arr[1][i];
for (i = 1; i < N + 1; i++)
{
for (j = 1; j < N + 1; j++)
{
int cnt = 0;
if (arr[i][j] == '#')
{
if (arr[i - 1][j] == '#')
cnt++;
if (arr[i + 1][j] == '#')
cnt++;
if (arr[i][j - 1] == '#')
cnt++;
if (arr[i][j + 1] == '#')
cnt++;
if (cnt % 2)
arr[i + 1][j] = '#';
}
else
{
if (arr[i - 1][j] == '#')
cnt++;
if (arr[i + 1][j] == '#')
cnt++;
if (arr[i][j - 1] == '#')
cnt++;
if (arr[i][j + 1] == '#')
cnt++;
if (cnt % 2)
arr[i + 1][j] = '#';
}
}
}
{
for (i = 1; i < N + 1; i++)
for (j = 1; j < N + 1; j++)
{
cout << arr[i][j];
}
cout << '\n';
}
return 0;
}
문제읽는데 조금 시간이 걸렸지만, 패턴을 찾고, 규칙을 찾아서 반복, 조건문으로만 브루트포스 알고리즘으로 풀었다.
그냥 무식하게 조건만따져서 풀었다는 뜻이다.
문제푸는데 20분정도 걸린것 같다.