package Ġweek 2 Ċ Ċ class ĠNumber Of Is lands Ġ{ ĊĊĠĠĠ Ġfun Ġnum Is lands ( grid : ĠArray < CharArray >): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠnumberOf Is lands Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġgrid . forEach Indexed Ġ{ Ġi , Ġchars Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchars . forEach Indexed Ġ{ Ġj , Ġc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c Ġ== Ġ' 1 ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnumberOf Is lands Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb fs ( grid , Ġi , Ġj ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠnumberOf Is lands ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġb fs ( grid : ĠArray < CharArray >, Ġi : ĠInt , Ġj : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġ 0 Ġ|| Ġi Ġ>= Ġgrid . size Ġ|| Ġj Ġ< Ġ 0 Ġ|| Ġj Ġ>= Ġgrid [ i ]. size Ġ|| Ġgrid [ i ][ j ] Ġ== Ġ' 0 ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgrid [ i ][ j ] Ġ= Ġ' 0 ' ĊĊĠĠĠĠĠĠĠ Ġb fs ( grid , Ġi Ġ- Ġ 1 , Ġj ) ĊĠĠĠĠĠĠĠ Ġb fs ( grid , Ġi Ġ+ Ġ 1 , Ġj ) ĊĠĠĠĠĠĠĠ Ġb fs ( grid , Ġi , Ġj Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġb fs ( grid , Ġi , Ġj Ġ+ Ġ 1 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġinput Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠ Ġchar ArrayOf (' 1 ', Ġ' 1 ', Ġ' 0 ', Ġ' 0 ', Ġ' 0 '), ĊĠĠĠĠĠĠĠ Ġchar ArrayOf (' 1 ', Ġ' 1 ', Ġ' 0 ', Ġ' 0 ', Ġ' 0 '), ĊĠĠĠĠĠĠĠ Ġchar ArrayOf (' 0 ', Ġ' 0 ', Ġ' 1 ', Ġ' 0 ', Ġ' 0 '), ĊĠĠĠĠĠĠĠ Ġchar ArrayOf (' 0 ', Ġ' 0 ', Ġ' 0 ', Ġ' 1 ', Ġ' 1 ') ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval ĠnumberOf Is lands Ġ= ĠNumber Of Is lands () ĊĊĠĠĠ Ġprintln ( numberOf Is lands . num Is lands ( input )) Ċ }