티스토리 뷰
https://www.acmicpc.net/problem/1915
1915번: 가장 큰 정사각형
첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다.
www.acmicpc.net
진짜 금방 풀수 있었는데 아주 조금 엇나가서 시간이 걸려버렸다.
처음에 생각한건 d[i][j] = (i,j)를 가장 오른쪽 아래로 하는 정사각형의 한 변의 크기의 최댓값
따라서 (i,j)를 기준으로 위, 왼쪽이 0이 넘는다면 즉 d[i-1][j], d[i][j-1] 중 작은 값을 len으로 하고,
d[i-len][j-len] > 0 이면 d[i][j] = len + 1이라고 생각했는데 대각선 왼쪽 위 방향을 생각을 못했다.
결론적으로 d[i][j]는 위대로고, 점화식은 아래와 같다.
d[i][j] = min(d[i-1][j-1], min(d[i-1][j], d[i][j-1]))+1;
'PS' 카테고리의 다른 글
백준 2629. 양팔저울 (0) | 2022.10.14 |
---|---|
백준 6593. 상범 빌딩 (0) | 2022.10.14 |
백준 7579. 앱 (0) | 2022.10.13 |
백준 9205. 맥주 마시면서 걸어가기 (0) | 2022.10.11 |
백준 16926. 배열 돌리기 1 (0) | 2022.10.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- greedy
- Kruskal
- BFS
- 이분탐색
- Stack
- graph
- 자료구조
- Brute Force
- back tracking
- two pointer
- db
- 조합
- C
- Spring
- Tree
- Dijkstra
- 재귀
- priority queue
- DP
- recursion
- C++
- binary search
- dfs
- Unity
- Implementation
- CSS
- floyd warshall
- MVC
- permutation
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함