package Ġcom . github . danger ground . a oc 2 0 2 0 Ċ Ċ import Ġcom . github . danger ground . a oc 2 0 2 0 . util . Day Input Ċ Ċ class ĠDay 6 ( batches : ĠList < List < String >>) Ġ{ ĊĊĠĠĠ Ġval Ġgroups Ġ= Ġmutable ListOf < Group >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġbatches . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroups . add ( Group ( it )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpart 1 (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgroups . sum Of Ġ{ Ġit . count Answers () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpart 2 (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgroups . sum Of Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . count Amb iguous ly Answers () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠGroup ( private Ġval Ġanswers : ĠList < String >) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtotal Questions Answer ed Ġ= Ġmutable Set Of < Char >() ĊĠĠĠ Ġprivate Ġval Ġquestions Answer ed Amb iguous ly : ĠSet < Char > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquestions Answer ed Ġ= Ġanswers [ 0 ]. toCharArray (). to Mutable Set () ĊĠĠĠĠĠĠĠ Ġanswers . forEach Indexed Ġ{ Ġindex , Ġmember Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmember . forEach Ġ{ Ġanswer Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . total Questions Answer ed . add ( answer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestions Answer ed . remove If Ġ{ Ġ! member . contains ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġquestions Answer ed Amb iguous ly Ġ= Ġquestions Answer ed ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcount Answers () Ġ= Ġtotal Questions Answer ed . count () ĊĠĠĠ Ġfun Ġcount Amb iguous ly Answers () Ġ= Ġquestions Answer ed Amb iguous ly . count () ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Group ( answers =$ answers Ġquestions Answer ed Amb iguous ly =${ questions Answer ed Amb iguous ly . size } Ġ($ questions Answer ed Amb iguous ly )) " ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġinput Ġ= ĠDay Input . batches Of String List ( 6 ) ĊĠĠĠ Ġval Ġday 6 Ġ= ĠDay 6 ( input ) ĊĊĠĠĠ Ġ// Ġpart Ġ 1 ĊĠĠĠ Ġ// val Ġpart 1 Ġ= Ġday 6 . part 1 () ĊĠĠĠ Ġ// println (" result Ġpart Ġ 1 : Ġ$ part 1 ") ĊĊĠĠĠ Ġ// Ġpart 2 ĊĠĠĠ Ġval Ġpart 2 Ġ= Ġday 6 . part 2 () ĊĠĠĠ Ġprintln (" result Ġpart Ġ 2 : Ġ$ part 2 ") Ċ }