320x100
문제 : https://leetcode.com/problems/making-a-large-island/
n x n 크기의 0과 1로 이루어진 grid 배열이 입력으로 주어질 때, 1로 이루어진 섬의 최대 크기를 구하여라.
이 때, 최대 한 번 0을 1로 바꿀 수 있다.
dfs를 한 번 돌리면서 연결된 1들을 하나의 섬으로 보고 섬의 번호와 해당 섬의 크기를 map에 저장한다.
grid 배열을 한 번 더 탐색하면서 탐색하는 셸이 0인 경우 해당 셸의 상하좌우에 있는 섬의 번호들을 가져온다.
상하좌우에 있는 섬들의 합 + 1 (탐색중인 0 셸이 1로 바뀌면서 증가된 섬의크기)들이 하나의 0을 1로 바꿨을 때 구할 수 있는 섬의 크기이다.
구할 수 있는 섬들의 크기들 중 최대값이 정답이 된다.
시간/공간 복잡도는 O(n^2).
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[leetcode] 113. Path Sum II (0) | 2021.08.04 |
---|---|
[leetcode] 90. Subsets II (0) | 2021.08.03 |
[leetcode] 542. 01 Matrix (0) | 2021.07.29 |
[leetcode] 108. Convert Sorted Array to Binary Search Tree (0) | 2021.07.27 |
[leetcode] 126. Word Ladder II (0) | 2021.07.25 |
댓글