미생물군집들의 1초뒤 목적지가 같다면 다음 이동 방향은 가장 군집이 큰 미생물군집의 방향을 따른다.
행렬의 가장자리인 행과 열(빨간색) 4개에 미생물 군집이 들어가게 된다면 미생물군집의 크기는 반으로,방향은 반대로 바뀐다.
주어진 시간 후에 남은 모든 미생물들의 숫자를 출력하라.
Solved
N*N행렬을 모두 탐색하면서 N+dy[k], N+dx[k] 에 존재하는 미생물군집의 다음 이동목적지가 N,N인지 확인하고, N,N이 흰색 네모인지, 빨간색 네모인지 케이스를 나누어 처리.
while (afterHours--)
{
for (int i = 0; i<N; i++)
for (int j = 0; j < N; j++)
{
int inLoopMax = 0;
position maxPosition;
for (int k = 1; k <= 4; k++) //네 방향 검사위해.
{
if (i + dy[k] >= 0 && j + dx[k] >= 0 && (i == i + dy[k] + dy[microOrgaInfo[i + dy[k]][j + dx[k]].moveDirection]) && (j == j + dx[k] + dx[microOrgaInfo[i + dy[k]][j + dx[k]].moveDirection]) && i + dy[k]<N && i + dx[k] <N) //이동 범위가 배열의 인덱스를 초과하면 안되고, 해당위치에서 상하좌우에 있는 미생물들의 다음 위치가 해당위치이면. 실수확률높다.
{
//해당 위치가 하얀색이라면. 맥스값 구해서. 그에 해당하는 디렉션할당.
if (i >= 1 && j >= 1 && i < N - 1 && j < N - 1)
{
}
else { //해당 위치 빨간색.
}
UnSolved
Tips
'5'분안에 눈으로 디버깅이 불가능하다면 f5 or f10을 눌러서 최대한 빨리 디버깅을 시작하자.
branch : minq commit : eb2a56b3091ddd40e3d9cfe34793d3d8cf69d8f1
About The Problem
Solved
N*N행렬을 모두 탐색하면서 N+dy[k], N+dx[k] 에 존재하는 미생물군집의 다음 이동목적지가 N,N인지 확인하고, N,N이 흰색 네모인지, 빨간색 네모인지 케이스를 나누어 처리.
UnSolved
Tips