Code/BOJ

#15683 감시

milkteagood 2020. 3. 23. 21:28
728x90
반응형

출처:https://www.acmicpc.net/problem/15683

 

15683번: 감시

스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할

www.acmicpc.net

 

풀이

dfs + 시뮬레이션 문제

먼저 cctv의 개수를 vector에 보관한 후 dfs를 통해 각 cctv별 어떤 방향으로 감시를 할 것인지에 대해 기록한다. 그렇게 방향 정보를 다 기록하고 나면 map을 채우게 되는데 이때 fill_map함수를 실행하여 cctv 번호마다 어떤식으로 감시하는지를 표현하였다. 그리고 그 안에서 simul이라는 함수가 실행되는데 simul함수는 해당 cctv위치를 기준으로 d방향만큼 일직선으로 맵을 채워주는 함수이다.

 

코드

 

 

728x90
반응형