1010var exist = function ( board , word ) {
1111 let result = false ;
1212
13+ // 1. 2์ฐจ์ ๋ฐฐ์ด์ ๋ชจ๋ ์ขํ๋ฅผ ์ํ
1314 for ( let r = 0 ; r < board . length ; r ++ ) {
1415 for ( let c = 0 ; c < board [ 0 ] . length ; c ++ ) {
1516 dfs ( r , c , 0 ) ;
@@ -19,26 +20,33 @@ var exist = function (board, word) {
1920 return result ;
2021
2122 function dfs ( row , column , wordIndex ) {
23+ // 2. ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์ขํ์ธ์ง ๊ฒ์ฆ
2224 if ( ! isValid ( row , column ) ) {
2325 return ;
2426 }
27+ // 3. word์์ ์ฐพ๊ณ ์๋ ๋ฌธ์์ธ์ง ํ์ธ
2528 if ( board [ row ] [ column ] !== word [ wordIndex ] ) {
2629 return ;
2730 }
31+ // 4. word ๋ฌธ์๋ฅผ ๋ค ์ฐพ์๋์ง ํ์ธ
2832 if ( wordIndex === word . length - 1 ) {
2933 result = true ;
3034 return ;
3135 }
3236
37+ // 5. ๋ฐฉ๋ฌธํ ์ขํ๋ฅผ ํ์ํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ฌธ์๋ก ๋ฐ๊ฟ์น๊ธฐ ํด๋
3338 const temp = board [ row ] [ column ] ;
3439 board [ row ] [ column ] = "#" ;
40+ // 6. ์ํ์ข์ฐ๋ก ์ขํ ๋ฐฉ๋ฌธ
3541 dfs ( row + 1 , column , wordIndex + 1 ) ;
3642 dfs ( row - 1 , column , wordIndex + 1 ) ;
3743 dfs ( row , column + 1 , wordIndex + 1 ) ;
3844 dfs ( row , column - 1 , wordIndex + 1 ) ;
45+ // 7. ํด๋น ์ขํ์ ์ฌ๊ท ๋ฐฉ๋ฌธ์ด ๋๋๋ฉด ๋ฏธ๋ฐฉ๋ฌธ์ผ๋ก ํ์ํ๊ธฐ ์ํด ์๋ ๋ฌธ์๋ก ๋๋๋ฆฌ๊ธฐ
3946 board [ row ] [ column ] = temp ;
4047 }
4148
49+ // ์ ํจํ ์ขํ์ธ์ง ํ์ธํ๋ ํจ์
4250 function isValid ( row , column ) {
4351 if ( row < 0 || board . length <= row ) {
4452 return false ;
0 commit comments