diff --git a/number-of-islands/yihyun-kim1.js b/number-of-islands/yihyun-kim1.js new file mode 100644 index 0000000000..25a554f104 --- /dev/null +++ b/number-of-islands/yihyun-kim1.js @@ -0,0 +1,30 @@ +/** + * @param {character[][]} grid + * @return {number} + */ +var numIslands = function (grid) { + let count = 0; + + const dfs = (i, j) => { + if (i < 0 || i >= grid.length || j < 0 || j >= grid[0].length) return; + if (grid[i][j] !== "1") return; + + grid[i][j] = "0"; + + dfs(i + 1, j); + dfs(i - 1, j); + dfs(i, j + 1); + dfs(i, j - 1); + }; + + for (let i = 0; i < grid.length; i++) { + for (let j = 0; j < grid[0].length; j++) { + if (grid[i][j] === "1") { + dfs(i, j); + count++; + } + } + } + + return count; +};