프로그래밍/기타 문제풀이

[BOJ17142] 연구소 3

kkalgo 2023. 6. 27. 18:09
 

17142번: 연구소 3

인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고,

www.acmicpc.net

 

  • 비활성화 바이러스는 바이러스다.
    • 바이러스가 아닌게 아님.
    • 비활성화 바이러스를 마주치면 그냥 다음 큐에 넣어주기만 하면 되고
    • 해당 단계에 대해 bfs가 끝났을 때 time만 올려주면 된다.

종료조건

  • 빈 칸이 하나도 남지 않은 경우 (이 부분이 중요)
    • 비활성화 바이러스가 있다고 하더라도 빈 칸에 모두 퍼트렸으면 종료하면 된다.
    • 왜냐면 비활성 바이러스는 이미 바이러스로 그 칸을 점유하고 있기 때문.
    • 그래서, 비활성 바이러스를 가지 않았더라도
      • 이미 모든 빈칸들에 대해 바이러스가 퍼진 경우 종료시켜서 해결한다.

시간제한

  • 바이러스는 최대 10개여서 배치할 수 있는 방법은 10CombinationM
  • 즉, 10CombinationM * bfs(최대 50* 50, 2500번의 반복) 호출 횟수이므로 충분하다.

 

 

GitHub - ssjjaa-algo/AlgoAndMySQL

Contribute to ssjjaa-algo/AlgoAndMySQL development by creating an account on GitHub.

github.com