Skip to content

Commit c6aa537

Browse files
committed
Add number of islands solution
1 parent 6077f9f commit c6aa537

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

number-of-islands/hyunjung-choi.kt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**
2+
* 시간복잡도: O(M × N)
3+
* 공간복잡도: O(M × N)
4+
*/
5+
6+
class Solution {
7+
fun numIslands(grid: Array<CharArray>): Int {
8+
if (grid.isEmpty() || grid[0].isEmpty()) return 0
9+
10+
val row = grid.size
11+
val column = grid[0].size
12+
var isIslandCount = 0
13+
14+
for (i in 0 until row) {
15+
for (j in 0 until column) {
16+
if (grid[i][j] == '1') {
17+
isIslandCount++
18+
dfs(grid, i, j, row, column)
19+
}
20+
}
21+
}
22+
23+
return isIslandCount
24+
}
25+
26+
private fun dfs(grid: Array<CharArray>, i: Int, j: Int, row: Int, column: Int) {
27+
if (i < 0 || i >= row || j < 0 || j >= column || grid[i][j] != '1') {
28+
return
29+
}
30+
31+
grid[i][j] = '0'
32+
33+
dfs(grid, i - 1, j, row, column)
34+
dfs(grid, i + 1, j, row, column)
35+
dfs(grid, i, j - 1, row, column)
36+
dfs(grid, i, j + 1, row, column)
37+
}
38+
}

0 commit comments

Comments
 (0)