프로그래밍/기타 문제풀이
[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