{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉BFS/DFS〉바이러스 전파 시간← 이전다음 →
#051 · BFS/DFS중간BFS / 다중 시작점

바이러스 전파 시간

문제

N×M 격자에 바이러스가 여러 곳에서 동시에 퍼지기 시작합니다. 매 초마다 바이러스는 상하좌우 인접한 빈 칸으로 퍼집니다. 벽은 바이러스가 통과할 수 없습니다.

모든 빈 칸이 감염될 때까지 최소 시간을 반환하세요. 이미 빈 칸이 없으면 0, 감염이 불가능하면 -1을 반환하세요.

격자 값:

  • 0: 빈 칸 (감염 가능)
  • 1: 벽 (통과 불가)
  • 2: 초기 바이러스 위치

예시

grid = [
  [2,0,0],
  [0,0,0],
  [0,0,2]
] → 2

제약 조건

  • 1 ≤ N, M ≤ 8
  • 격자에 바이러스(2)는 최소 1개

시간 복잡도 목표: O(N×M)

테스트 케이스

예시 1: 양 끝 바이러스 → 2초 후 모두 감염
입력: grid = [[2,0,0],[0,0,0],[0,0,2]]
출력: 2
예시 2: 한쪽 구석에서 시작 → 4
입력: grid = [[2,0,0],[0,0,0],[0,0,0]]
출력: 4
예시 3: 중앙 빈칸 감염 불가 → -1
입력: grid = [[2,1,2],[1,0,1],[2,1,2]]
출력: -1
예시 4: 빈 칸 없음 → 0
입력: grid = [[2,2,2]]
출력: 0
예시 5: ㄱ자 경로 통해 전파 → 5
입력: grid = [[0,0,0,2],[1,1,1,0],[0,0,0,0]]
출력: 5
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.