10
10
var exist = function ( board , word ) {
11
11
let result = false ;
12
12
13
+ // 1. 2์ฐจ์ ๋ฐฐ์ด์ ๋ชจ๋ ์ขํ๋ฅผ ์ํ
13
14
for ( let r = 0 ; r < board . length ; r ++ ) {
14
15
for ( let c = 0 ; c < board [ 0 ] . length ; c ++ ) {
15
16
dfs ( r , c , 0 ) ;
@@ -19,26 +20,33 @@ var exist = function (board, word) {
19
20
return result ;
20
21
21
22
function dfs ( row , column , wordIndex ) {
23
+ // 2. ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ขํ์ธ์ง ๊ฒ์ฆ
22
24
if ( ! isValid ( row , column ) ) {
23
25
return ;
24
26
}
27
+ // 3. word์์ ์ฐพ๊ณ ์๋ ๋ฌธ์์ธ์ง ํ์ธ
25
28
if ( board [ row ] [ column ] !== word [ wordIndex ] ) {
26
29
return ;
27
30
}
31
+ // 4. word ๋ฌธ์๋ฅผ ๋ค ์ฐพ์๋์ง ํ์ธ
28
32
if ( wordIndex === word . length - 1 ) {
29
33
result = true ;
30
34
return ;
31
35
}
32
36
37
+ // 5. ๋ฐฉ๋ฌธํ ์ขํ๋ฅผ ํ์ํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ฌธ์๋ก ๋ฐ๊ฟ์น๊ธฐ ํด๋
33
38
const temp = board [ row ] [ column ] ;
34
39
board [ row ] [ column ] = "#" ;
40
+ // 6. ์ํ์ข์ฐ๋ก ์ขํ ๋ฐฉ๋ฌธ
35
41
dfs ( row + 1 , column , wordIndex + 1 ) ;
36
42
dfs ( row - 1 , column , wordIndex + 1 ) ;
37
43
dfs ( row , column + 1 , wordIndex + 1 ) ;
38
44
dfs ( row , column - 1 , wordIndex + 1 ) ;
45
+ // 7. ํด๋น ์ขํ์ ์ฌ๊ท ๋ฐฉ๋ฌธ์ด ๋๋๋ฉด ๋ฏธ๋ฐฉ๋ฌธ์ผ๋ก ํ์ํ๊ธฐ ์ํด ์๋ ๋ฌธ์๋ก ๋๋๋ฆฌ๊ธฐ
39
46
board [ row ] [ column ] = temp ;
40
47
}
41
48
49
+ // ์ ํจํ ์ขํ์ธ์ง ํ์ธํ๋ ํจ์
42
50
function isValid ( row , column ) {
43
51
if ( row < 0 || board . length <= row ) {
44
52
return false ;
0 commit comments