Cette semaine, c'est Morgan qui vous propose un #KataOfTheWeek : Gestion de ressources 7 Wonders

Briefing du Kata : Dans ce kata, vous recevrez une séquence de cartes séparées par des virgules à l'intérieur de crochets. L'input à résoudre sera donnée sous la forme "Can you make ____?" avec la liste des ressources à obtenir, une seule par carte.

Remarque : dans le jeu 7 Wonders, chaque carte propose soit 1, soit 2, soit 4 ressources. Pour un peu plus de challenge, faites en sorte que votre programme supporte un nombre quelconque de ressources au lieu de seulement W,B,S,O, et faites en sorte que votre programme accepte des cartes de ressources arbitraires.

Voici des exemples d'inputs:

Cards [W/B/S/O, W, S/B, S]. Can you make WWSS?

Cards [W/B/S/O, S/O, W/S, W/B, W/B, W, B]. Can you make WWBSSOO?

Cards [A/B/D/E, A/B/E/F/G, A/D, A/D/E, A/D/E, B/C/D/G, B/C/E, B/C/E/F, 
B/C/E/F, B/D/E, B/D/E, B/E/F, C/D/F, C/E, C/E/F/G, C/F, C/F, D/E/F/G, 
D/F, E/G]. Can you make AABCCCCCCDDDEEEEFFGG?

Cards [A/C/G/K/L/O/R/S, A/D/H/I/M/Q, A/D/K/W/X, A/D/M/U/Z, A/E/J/M/T, 
A/G/H/I/M/R/T/Z, A/G/M/T/U, A/H/I/J/Q, B/C/Q/U/V, B/D/F/K/M/R/W/Y, 
B/F/P/T/U/W/Y, B/G/K/M/S/T/X/Y, C/E/F/I/K/N/O, D/E/G/J/M/Q/Z, D/G/I/R/Z, 
D/H/I/T/U, E/G/H/J/M/Q, E/G/H/J/Q/R/T/U, E/G/J/M/Z, E/H/I/Q/T/U/Z, 
E/J/O/S/V/X, F/G/H/N/P/V, F/G/N/P/R/S/Z, F/I/M/Q/R/U/Z, F/L/M/P/S/V/W/Y, 
G/H/J/M/Q]. Can you make ABCDEFGHIJKLMNOPQRSTUVWXYZ?

Pour chacun de ces inputs, votre programme doit être capable de dire si il est possible de générer les ressources désirées et si oui, comment.

Pour le dernier exemple, cela risque d'être plus difficile avec un algorithme de type bruteforce. Essayez d'obtenir des résultats rapides, même pour des complexités élévées !

Saurez-vous résoudre le problème ?

Bon courage ! Retrouvez la solution dans cet article 😉