[BOJ14502] 연구소
Updated:
안전영역 크기 최댓값
- N*M 지도에 0 빈 칸, 1 벽, 2 바이러스
- 바이러스 상하좌우 번식
- 벽 3개 세우기 가능
- 벽을 적절한 곳에 세워 안전영역 최댓값 구하기
입력
- N M 세로 가로 (3 <= N, M <= 8)
- 0, 1, 2 (빈 칸, 벽, 바이러스) 로 이루어진 지도
- 지도 조건 (2<= 바이러스수 <= 10) (3<= 빈칸)
출력
- 벽 세운 후 안전영역 최대 크기
설계
- 벽 3개를 세울 수 있는 가능한 모든 경우의 지도 구성
- 벽을 세운 맵(복사)을 기준으로 BFS 구현
- 바이러스마다 BFS 이용해 0이 인접하면 2로 변경
- 0 갯수 체크하여 최댓값 출력
피드백
- 벽 세 개를 세우는 부분 구현이 헷갈림
- 재귀적으로 구현
- 0에서 1로 바꾼 후 재귀 호출
- 다시 1을 0으로 바꿔 그 전 상황 유지
How I solved(click to github)
ref :
BOJ14502
Leave a comment