Dans le cadre de l'apprentissage Ruby, nous mettrons au défi le «test pratique de l'algorithme». Nous sortirons ce que nous avons appris dans l'apprentissage à cette fin. Cette fois, à partir de la troisième question (troisième) du "1er test pratique de l'algorithme". Question précédente du premier test pratique d'algorithme
Je présenterai ma réponse ainsi que les expressions et méthodes que j'ai apprises en répondant.
Six entiers différents A, B, C, D, E, F sont donnés. Créez un programme qui recherche le troisième plus grand d'entre eux.
Contrainte ・ 1 ≤ A, B, C, D, E, F ≤ 100 ・ A, B, C, D, E, F sont tous différents -Toutes les valeurs entrées sont des entiers.
L'entrée est donnée sous la forme suivante.
A B C D E F
Exemple d'entrée
4 18 25 20 9 13
Exemple de sortie
=> 13
Tout d'abord, d'après la réponse que j'ai soumise.
ary = gets.split(" ").map(&:to_i)
r_ary = ary.sort
print r_ary[3]
Reçoit la chaîne de caractères d'entrée sous forme d'entier dans un tableau Il trie en utilisant la méthode de tri et génère le troisième plus grand entier.
De là, je vais résumer la méthode de tri que j'ai utilisée pour la première fois cette fois.
Trie le contenu du tableau. Les éléments sont comparés à l'aide de l'opérateur <=>, et sort produit et renvoie un tableau trié.
Si vous triez par un tableau contenant des chaînes de caractères, il sera trié dans l'ordre "a, b, c ..." ou "a, i, u ...".
ary1 = [ "d", "a", "e", "c", "b" ]
p ary1.sort
#=> ["a", "b", "c", "d", "e"]
Si les nombres sont dans le tableau en tant qu'éléments de la chaîne, cela ressemble à ceci:
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort
#=> ["10", "11", "7", "8", "9"]
S'il est inclus dans le tableau en tant qu'élément entier depuis le début, il peut être écrit de manière aussi concise que la réponse, S'il se trouve dans un tableau sous forme de chaîne, utilisez block {} pour effectuer les opérations suivantes:
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort{|a, b| a.to_i <=> b.to_i }
#=> ["7", "8", "9", "10", "11"]
Cependant, il est converti en entier à l'aide de la méthode to_i pour comparaison dans le bloc. Notez que le tableau généré redevient une chaîne.
La même chose peut être faite avec la méthode sort_by.
ary2 = ["9", "7", "10", "11", "8"]
p ary2.sort_by{|a| a.to_i}
#=> ["7", "8", "9", "10", "11"]
Ce qui précède est un résumé des sortes apprises en résolvant la troisième question (troisième) du "1er test pratique de l'algorithme".
Si vous avez des erreurs, je vous serais reconnaissant de bien vouloir les signaler.
Recommended Posts