Ceci est le deuxième d'une série, le troisième est Deux routes divergeaient dans un bois jaune (partie 3)
Ceci est basé sur deux routes divergentes dans un bois jaune (partie 1) , un défi précédent pour moi. Il a été assez bien reçu, mais c'était aussi assez banal (une réponse Java en 52 octets!) J'ai donc rendu quelque chose de plus complexe ...
L'inspiration
Ce défi est inspiré du célèbre poème de Robert Frost, "The Road Not Taken":
Deux routes divergeaient dans un bois jaune,
Et désolé, je ne pouvais pas voyager les deux
Et être un voyageur, longtemps je me tenais
Et baissais les yeux autant que je pouvais
Vers où il se penchait dans les sous-bois;... 2 paragraphes coupés ...
Je vais le dire avec un soupir
Quelque part, des âges et des siècles à venir:
Deux routes ont divergé dans un bois, et je -
j'ai pris celle moins fréquentée,
Et cela a fait toute la différence.
Remarquez l'avant-dernière ligne I took the one less traveled by,
,. Votre objectif est de trouver la route la moins fréquentée dans votre entrée de chaîne. Vous devez émettre l'une des 2 valeurs distinctes l'une de l'autre indiquant le sens dans lequel vous devez tourner pour emprunter la route moins fréquentée. Une fois que la route bifurque (la trace des hexagones se transforme en nombre) vous êtes à l'intersection. De là, il y aura 2 chemins composés de chiffres. Le chemin dont les chiffres ont la somme la plus faible sera la route non empruntée. Notez que la route non empruntée peut avoir un chemin plus grand mais une somme de chemin inférieure. Voici quelques exemples / cas de test d'un programme qui imprime "gauche" ou "droite" pour le chemin non emprunté:
1 2
1 2
1 2
#
#
#
left (3 < 6)
1 2
2 2
1 1
#
#
#
left (4 < 5)
12 2
11 2
1 1
#
#
#
right (6 > 5)
99 989
99 89
99 99
99 99
#
#
#
#
left (72 < 79)
1111 1110
001 111
11 11
11 11
#
##
##
##
left (9 < 10) (Note: 1111 is interpreted as 1+1+1+1=4, not 1111=1111)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
1 1
0 1
1 1
1 1
1 1
1 1
1 1
#
#
#
#
#
left (6 < 7)
Choses à assumer et à retenir
- Il y aura toujours 2 chemins. Ni plus ni moins.
- Vous pouvez prendre l'entrée de STDIN une ligne à la fois, une chaîne contenant des caractères LF ou une chaîne contenant une barre oblique inverse littérale et un n. Si vous avez besoin de commentaires d'une autre manière, demandez l'approbation dans les commentaires.
- Vous n'avez pas à vous soucier des entrées non valides ou des chemins liés. Ceux-ci ne seront jamais entrés dans votre programme / fonction.
- L'entrée peut être de n'importe quelle longueur en largeur ou en hauteur, inférieure à la limite de chaîne de votre langue.
- Il n'y aura jamais un
#
et un nombre sur la même ligne. - Tous les chiffres du chemin sont des entiers positifs de 0 à 9.
- L'entrée ou la sortie avec une nouvelle ligne de fin est autorisée.
- Voir ma réponse JS ES6 ci-dessous pour un exemple.
- Il y aura toujours au moins 1 espace entre les 2 chemins.
- Les 2 chemins auront toujours la même hauteur pour chaque carte, mais peuvent être différents sur d'autres cartes.
- Si vous êtes confus au sujet d'un cas de test spécifique, veuillez me le dire.
- 1111 est interprété comme 1 + 1 + 1 + 1 = 4, pas 1111 = 1111. La carte est une série de nombres à un chiffre, pas des nombres de longueur arbitraire.
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte!
- Failles standard interdites
Si vous avez des questions sur ce défi, posez-les moi dans les commentaires, et bonne chance!
let answers = $('div > h1').map(function(){return $(this).clone().children(':not(a)').remove().end().text().replace(/\s+/g,' ').trim()}).get();answers.splice(0, 1);answers.join('\n');
$("div > h1").map(function(){return $(this).text()}).get().join("\n");
dans votre console!