티스토리 뷰
https://www.acmicpc.net/problem/15683
15683번: 감시
스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감
www.acmicpc.net
사무실의 가로 세로 길이가 최대 8이기 때문에 모든 상태를 다 탐색해보는 브루트포스 문제인것을 알 수 있다.
주어지는 cctv들의 r,c 좌표와 상태를 벡터에 저장했다.
cctv의 상태는 기준이 되는 방향을 뜻한다.
모든 cctv의 모든 상태를 구하는 것은 재귀적으로 구했다.
최초의 상태에서 90도를 돌릴수 있으므로 각 cctv는 총 4가지의 상태가 있다.
사실 2번 cctv 같은 경우는 양쪽 방향을 가르키기 때문에 2가지 상태, 5번 cctv는 4방향을 모두 처음부터 가르키고 있으므로 1가지 상태지만 어처피 연산의 횟수가 많지 않기 때문에 그냥 모든 cctv에 대하여 4가지 방향으로 구했다.
이렇게 구한 cctv별 상태를 기준으로 사무실의 사각지대를 확인해보면 된다.
여기서는 1번 cctv의 4방향의 범위를 기록하는 함수를 만들어 나머지 cctv는 1번 cctv의 함수를 활용하는 방식으로 구현했다.
예를들어 2번 cctv는 1번 cctv의 방향의 반대 방향으로 또 한번 1번 cctv 함수를 호출하면 된다는것을 알 수 있다.
'PS' 카테고리의 다른 글
백준 14890. 경사로 (0) | 2022.04.16 |
---|---|
백준 17144. 미세먼지 안녕! (0) | 2022.04.15 |
백준 14891. 톱니바퀴 (0) | 2022.04.12 |
백준 14499. 주사위 굴리기 (0) | 2022.04.11 |
백준 11729. 하노이 탑 이동 순서 (0) | 2022.04.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Brute Force
- db
- BFS
- graph
- C
- C++
- priority queue
- recursion
- two pointer
- Tree
- Implementation
- Spring
- permutation
- Stack
- back tracking
- 자료구조
- floyd warshall
- MVC
- 조합
- Unity
- Kruskal
- Python
- DP
- dfs
- 이분탐색
- 재귀
- CSS
- binary search
- Dijkstra
- greedy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함