문제접근
2차원 배열 origin 과 box를 두개 두고, 각 군집마다 생존여부를 나타내는 isAlive 변수를 저장한다. origin에는 군집 수 idx(들어온 Input 순서)로 현재 위치를 표시하고, box는 다음 이동시의 군집 위치를 표시한다.
1시간마다 box의 다음 이동위치로 옮기는데, 이때 경계를 만나면 1/2 로 미생물 줄인다. 그리고 다른 군집가 위치가 겹치면 미생물 수를 비교해 생존 여부(방향)만 설정해준다 크기는 grow 변수에 저장하고, 모든 이동이 끝난 다음 크기를 더해준다.
삽질
- 위치가 겹쳤을 때 순차적으로 미생물 크기를 비교하면서 더해줬다. 이렇게 되면 1,2,3 세개가 겹쳤을 때 3번은 1번과 2번을 더한 값과 비교가 된다.
box 배열은 항상 -1로 초기화되어 시작함으로 군집이 사라진다고 -1 체크를 할 필요가 없다. 사라질 때마다 -1로 초기화함으로서, 원래 자기 위치의 군집이 오게되면 -1로 바꿔버려 오답이 생겼다.
- 1시간 26분 소요