백준 21609번 상어 중학교 (JAVA)
역시 시뮬레이션 문제지만, 생각보다 까다로운 포인트가 몇개 있다. 첫번째로는 블록 그룹을 지정하는 방식이다. 방문처리를 함에 있어서 무지개 블록은 방문처리에서 제외해야했는데, 여러가지 구현의 방식이 있겠지만 나는 3차원 boolean 배열을 사용하는 방식으로 구현했다. 둘째로는 중력이 적용되는 케이스에서, 검은색 블록은 중력의 영향을 받지않는다는 것이다. 이것도 생각보다 구현을 까다롭게 만드는 요소였다. 이 포인트들을 생각한다면, 나머지는 문제에서 주어진 순서대로 구현만 올바르게 하면 풀리는 문제이다. 1. 크기가 가장 큰 블록 그룹을 찾는다. 그러한 블록 그룹이 여러 개라면 포함된 무지개 블록의 수가 가장 많은 블록 그룹, 그러한 블록도 여러개라면 기준 블록의 행이 가장 큰 것을, 그 것도 여러개이면 ..