-
[BOJ] 14502. 연구소 (JavaScript)Study/OnlineJudges 2021. 3. 10. 14:21
문제 url: www.acmicpc.net/problem/14502
14502번: 연구소
인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크
www.acmicpc.net
회고
- 처음 (대충) 봤을때 바이러스 확산으로 공간을 채우는 과정이 있기 때문에 BFS로 풀면 될 것 같았다
- 그런데 벽 3개를 무조건 세워야 한다는 조건을 보고 DP로 풀어야 하는 건가 싶었다
- DP로 풀기에는 점화식을 찾아내기가 너무 어려울 것 같았다
- 그냥 일단 벽 3개를 brute force로 해보고 최적화를 해보자는 생각으로 구현했는데 그냥 이렇게 하는게 맞았다..
풀이 과정
- 벽 3개를 세워야 하기 때문에 전체 영역을 돌면서 벽을 세우는 과정이 필요
- 무려 6중 for-loop..
virus
: 벽 3개가 세워지면 BFS/DFS로 바이러스 확산시킴- 시간이 지날 때마다 원래 바이러스 위치로부터 감염 영역 지름이 1씩 증가하므로 함수명은 BFS로 지었지만
- 함수 호출은 DFS 방식으로 발생함
getSafeNum
: 전체 영역을 다시 한번 돌면서 안전 영역("0")의 개수를 구함
풀이 코드
'Study > OnlineJudges' 카테고리의 다른 글
[BOJ] 가장 긴 증가하는 수열 (LIS) 시리즈; 그리디, DP, 이진탐색 (JavaScript) (0) 2021.03.11 [BOJ] 1759. 암호 만들기 (JavaScript) (0) 2021.03.10 [BOJ_10871/Java&C] lv3. X보다 작은 수 (0) 2020.02.18 [BOJ_2439/C] lv3. 별 찍기2 (0) 2020.02.17 [BOJ_15552/JAVA] lv3. 빠른 A+B (0) 2020.02.17