문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

6106 : DFS 응용 — 전염 시뮬레이션

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

6106 : DFS 응용 — 전염 시뮬레이션

시간 1.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

N×M 격자 맵 정보와 시간 T가 주어집니다. 격자의 칸은 각각 건강한 상태 'S', 감염된 상태 'I', 벽 '#' 중 하나를 나타냅니다.
매 1초마다 감염자('I')와 인접한 상하좌우의 건강한 사람('S')은 감염 상태로 변하게 됩니다. 벽 '#'으로는 전염이 진행될 수 없습니다.
초기 감염자가 존재할 때, T시간이 흐른 뒤 감염된 총 사람(또는 칸)의 수를 구하는 프로그램을 작성하십시오. (초기 감염자 역시 결과에 포함됩니다.)

입력 설명

첫째 줄에 행 크기 N, 열 크기 M (1 ≤ N, M ≤ 50)과 경과 시간 T (0 ≤ T ≤ 100)가 공백 구분되어 주어집니다.
둘째 줄부터 N개의 줄에 격자 맵 정보가 문자열 형태로 공백 없이 주어집니다.

출력 설명

T시간 후 감염된 칸의 총 개수를 출력합니다.

입력 예시
COPY
복사되었습니다!

3 3 1
SSS
SIS
SSS

출력 예시
COPY
복사되었습니다!

5

도움

각 격자 칸에 도달할 수 있는 최단 전염 시간을 기록하도록 방문 배열을 관리하고, DFS 탐색(혹은 BFS) 시 깊이가 T 이하인 칸들만을 방문하여 체크하면 전염 범위를 쉽게 알 수 있습니다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘