Echo, mascotte de l'équipe de Globalis, a découvert une fonction foo()
bien mystérieuse. Hélas, il n'a pas accès au code. Curieux et grand amateur de rétro-ingénierie, Echo s'est amusé à appeler cette fonction, en injectant des données en entrée et en récoltant les sorties. Le comportement de la fonction foo()
est le suivant :
Appel | Sortie |
---|---|
foo([[0, 3], [6, 10]]) |
[[0, 3], [6, 10]] |
foo([[0, 5], [3, 10]]) |
[[0, 10]] |
foo([[0, 5], [2, 4]]) |
[[0, 5]] |
foo([[7, 8], [3, 6], [2, 4]]) |
[[2, 6], [7, 8]] |
foo([[3, 6], [3, 4], [15, 20], [16, 17], [1, 4], [6, 10], [3, 6]]) |
[[1, 10], [15, 20]] |
Le challenge, si vous l'acceptez, serait d'aider Echo à comprendre ce que fait cette fonction et à la recoder. Vous êtes partant ? ;)
Expliquez, en quelques lignes, ce que fait cette fonction.
Cette fonction reçoit en entrée et retourne en sortie un tableau des tableaux de deux entrées. Considérons le tableau comme une route et les tableaux à deux entrées comme des tronçons de la route (entrée à indice 0 : début du tronçon, entrée à indice 1 : fin du tronçon). La fonction permet de retourner les tronçons indépendants sachant que deux tronçons qui se chevauchent (une partie d’un tronçon incluse dans l’autre) sont considérés et retournés comme une seule tronçon.
Codez cette fonction. Merci de fournir un fichier contenant :
- la fonction,
- l'appel de la fonction, avec un jeu de test en entrée,
- l'affichage du résultat en sortie.
Voir fichier index.js
Précisez en combien de temps vous avez implémenté cette fonction.
La fonction a été implémentée en 2h30
Par avance, un grand merci pour le temps que vous consacrerez à ce challenge, en espérant vous voir rejoindre très prochainement nos équipes ;)