/* Ċ Question : Ċ Rotate ĠMatrix : ĠGiven Ġan Ġimage Ġrepresented Ġby Ġan ĠN x N Ġmatrix , Ġwhere Ġeach Ġpixel Ġin Ġthe Ġimage Ġis Ġ 4 Ġbytes , Ġwrite Ġa Ġmethod Ġto Ċ rotate Ġthe Ġimage Ġby Ġ 9 0 Ġdegrees . ĠCan Ġyou Ġdo Ġthis Ġin Ġplace ? Ċ Ċ Solution : Ċ Modify ing Ġin - place . Ċ Ġ*/ Ċ Ċ ( 1 .. 7 ). forEach Ġ{ ĊĠĠĠ Ġprintln ("$ it Ġx Ġ$ it \ n ----- ") ĊĠĠĠ Ġval Ġmatrix Ġ= Ġcreate Matrix ( it ) ĊĠĠĠ Ġprintln (" Input :") ĊĠĠĠ Ġmatrix . display () ĊĠĠĠ Ġrotate ( matrix ) ĊĠĠĠ Ġprintln (" Output :") ĊĠĠĠ Ġmatrix . display () Ċ } Ċ Ċ type alias ĠPoint Ġ= ĠPair < Int , ĠInt > Ċ Ċ type alias ĠMatrix Ġ= ĠArray < Array < Point >> Ċ Ċ fun Ġrotate ( matrix : ĠMatrix ) Ġ{ ĊĠĠĠ Ġfor Ġ( rowIndex Ġin Ġ 0 Ġuntil Ġmatrix . size Ġ/ Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlast Index Ġ= Ġmatrix . size Ġ- Ġ 1 Ġ- ĠrowIndex ĊĠĠĠĠĠĠĠ Ġfor Ġ( col Index Ġin ĠrowIndex Ġuntil Ġlast Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Ġ= Ġmatrix [ rowIndex ][ col Index ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġcol Index Ġ- ĠrowIndex ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtop Ġ= Ġleft ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix [ rowIndex ][ col Index ] Ġ= Ġmatrix [ last Index Ġ- Ġoffset ][ rowIndex ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġleft Ġ= Ġbottom ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix [ last Index Ġ- Ġoffset ][ rowIndex ] Ġ= Ġmatrix [ last Index ][ matrix . size Ġ- Ġ 1 Ġ- ĠrowIndex Ġ- Ġoffset ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbottom Ġ= Ġright ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix [ last Index ][ matrix . size Ġ- Ġ 1 Ġ- ĠrowIndex Ġ- Ġoffset ] Ġ= Ġmatrix [ col Index ][ last Index ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġright Ġ= Ġtop ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix [ col Index ][ last Index ] Ġ= Ġtop ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġcreate Matrix ( size : ĠInt ): ĠMatrix Ġ= ĠArray ( size ) Ġ{ ĠrowIndex Ġ-> ĊĠĠĠ ĠArray ( size ) Ġ{ Ġcol Index Ġ-> ĠrowIndex Ġ+ Ġ 1 Ġto Ġcol Index Ġ+ Ġ 1 Ġ} Ċ } Ċ Ċ fun ĠMatrix . display (): ĠUnit Ġ= ĠforEach Ġ{ Ġprintln ( it . content ToString ()) Ġ} Ċ