티스토리 뷰
https://www.acmicpc.net/problem/26009
26009번: 험난한 등굣길
통학러 재헌이는 1교시 수업을 듣기 위해 아침 일찍 학교에 가려고 한다. 재헌이가 사는 지역은 크기가 $N \times M$ 인 격자로 나타낼 수 있는데, $i$행 $j$열에 해당하는 칸을 $(i, j)$로 나타낼 때 재
www.acmicpc.net
문제의 핵심은 교통 정체가 일어나는 부분을 지도에 표시하는 것이다.
만약 그냥 [r,c]로 부터 d 거리 이내의 좌표를 단순히 모두 탐색하여 표시하면 정체구역의수가 최대 3000개, 거리 d가 최대 3000이기 때문에 시간초과가 날 것이다.
생각해보면 어처피 교통정체 구간으로는 이동을 하지 못하기 때문에 [r,c]에서 d 이내의 좌표를 모두 표시할 필요는 없고 [r,c] 에서 정확히 d 만큼 떨어진 교통정체의 외곽 부분만 표시해도 된다.
[r,c]에서 d 거리 떨어진 곳을 그림으로 그려보면 다이아 몬드 형태가 되는 것을 알 수 있다.
예를들어 (r,c) 에서 2 만큼 떨어진 구역을 1로 표시하면 아래와 같게 된다.
| 1 | ||||
| 1 | 1 | |||
| 1 | (r,c) | 1 | ||
| 1 | 1 | |||
| 1 |
'PS' 카테고리의 다른 글
| 백준 1788. 피보나치 수의 확장 (0) | 2022.11.21 |
|---|---|
| 백준 1715. 카드 정렬하기 (0) | 2022.11.21 |
| 백준 7662. 이중 우선순위 큐 (0) | 2022.11.18 |
| 백준 17298. 오큰수 (0) | 2022.11.18 |
| 백준 13699. 점화식 (0) | 2022.11.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- BFS
- dfs
- priority queue
- binary search
- 이분탐색
- MVC
- Kruskal
- floyd warshall
- CSS
- greedy
- permutation
- Implementation
- 조합
- back tracking
- Unity
- Brute Force
- DP
- Tree
- recursion
- graph
- Python
- Spring
- Stack
- 재귀
- 자료구조
- C
- C++
- db
- two pointer
- Dijkstra
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함
