Nota: in questo post, i termini "carattere" e "colore" significano essenzialmente la stessa cosa
Questa immagine:
può essere rappresentato come
....'''333
.eeee'''3e
..dddd33ee
%%%dd####e
(mappatura dei colori sui caratteri ASCII)
Il teorema dei quattro colori afferma che "data qualsiasi separazione di un piano in regioni contigue, producendo una figura chiamata mappa, non sono necessari più di quattro colori per colorare le regioni della mappa in modo tale che due regioni adiacenti non abbiano lo stesso colore. Due le regioni sono chiamate adiacenti se condividono un confine comune che non è un angolo, dove gli angoli sono i punti condivisi da tre o più regioni. " - Wikipedia ( link )
Ciò significa che dovrebbe essere possibile colorare una mappa usando quattro colori in modo tale che due parti che condividono un bordo non condividano un colore.
L'algoritmo per colorare una mappa usando solo quattro colori è complicato, quindi in questa sfida il tuo programma deve solo colorare la mappa usando cinque o meno colori.
La mappa precedente ricolorata potrebbe apparire così:
che potrebbe essere rappresentato come
....'''333
.eeee'''3e
..dddd33ee
333dd....e
o equivalentemente
@@@@$$$!!!
@^^^^$$$!^
@@<<<<!!^^
!!!<<@@@@^
Sfida:
Data una "mappa" fatta di caratteri ASCII (dove ogni personaggio rappresenta un colore diverso), "ricolora" la mappa (rappresenta la mappa usando caratteri ASCII diversi) in modo che utilizzi solo cinque o meno colori.
Esempio:
Ingresso:
%%%%%%%%%%%%##########$$$$$$$$%%
*****%%%####!!!!!!!%%%%%%%%%#^^^
(((((((***>>>>??????????%%%%%%%%
&&&&&&&&$$$$$$$^^^^^^^))@@@%%%%%
^^^^^^%%%%%%%%%%%%##############
Uscita possibile:
11111111111122222222223333333311
44444111222255555551111111112444
22222224441111444444444411111111
55555555222222255555553355511111
22222211111111111122222222222222
chiarimenti:
- La mappa di input utilizzerà sempre sei o più caratteri
- È possibile utilizzare cinque caratteri diversi nell'output
- È possibile utilizzare meno di cinque caratteri diversi nell'output
- È possibile accettare l'input in qualsiasi formato ragionevole (incluso un array di array o un array di stringhe)
- Questo è code-golf, quindi vince la risposta più breve.


121come 3 regioni separate per evitare questo problema, anche se l'esempio implica diversamente, oppure dovremmo trattarla come 2 e supporre che non verrà fornita una mappa che richiede più di 5 colori?