Apprendre Ruby avec AtCoder 12 Comment utiliser correctement la sortie standard (p / met / print)

introduction

Participer à une programmation compétitive dans le cadre de l'apprentissage de Ruby et des algorithmes. Ici, nous sortirons ce que nous avons appris au cours de l'apprentissage.

Cette fois sur la sortie standard. J'ai utilisé l'impression principalement pour une raison quelconque jusqu'à présent, J'ai pensé que ce serait mieux si je pouvais faire une distinction, alors je vais la résumer.

Pour résumer simplement

** méthode p ** -Sortie qui reflète le type de l'objet (le type de chaîne de caractères est affiché entouré de ** "" **. Le type entier reste tel quel) ・ Sauts de ligne pour chaque ligne

** met méthode ** -Convertir un objet en chaîne de caractères et sortie ・ Sauts de ligne pour chaque ligne

** méthode d'impression ** -Convertir un objet en chaîne de caractères et sortie · ** Ne pas casser **

méthode p

Sorties qui reflètent le type de l'objet. Étant donné que la chaîne de caractères est affichée sous la forme entourée de ** "" **, Si la réponse est une chaîne de caractères, la réponse sera incorrecte. Il n'y a pas de problème si vous répondez par un entier.

p "test"
p 123

production


"test"
123

met méthode

Convertit l'objet en chaîne de caractères et le produit. Un saut de ligne se produit à la fin de la chaîne.

puts "test"
puts 123

production


test
123

méthode d'impression

Convertit l'objet en chaîne de caractères et le produit. Contrairement à la méthode put, aucun saut de ligne n'est effectué.

print "test"
print 123

production


test123

Lors de la sortie de deux objets successivement comme décrit ci-dessus, les chaînes de caractères sont sorties dans un état connecté.

Le format de sortie étant légèrement différent, il semble nécessaire de l'utiliser correctement en fonction du problème.

Exemple de problème ①

De "Atcoder Biginners Selection" Question 2 "Produit"

Il existe deux entiers positifs a et b. Sortie Même si le produit de a et b est pair, et Impair s'il est impair.

Exemple d'entrée


3 4

Exemple de réponse


a, b = gets.split(" ").map(&:to_i)
p (a*b).odd? ? "Odd" : "Even" #méthode p
puts (a*b).odd? ? "Odd" : "Even" #met méthode
print (a*b).odd? ? "Odd" : "Even" #méthode d'impression

production


"Even" #méthode p réponse incorrecte
Even #met méthode bonne réponse
Even #méthode d'impression bonne réponse

** "" La méthode p incluse dans ** était incorrecte. La réponse avec la méthode put ou la méthode d'impression est la bonne réponse.

Exemple de problème ②

De "Atcoder Biginners Selection" Question 3 "Placement des billes"

Il y a un carré composé de trois carrés. "0" ou "1" est écrit sur chaque carré, et la boule de perles est placée sur le carré avec "1" écrit dessus. Veuillez indiquer combien de carrés ont des billes de perles

Exemple d'entrée


101

Exemple de réponse


ary = gets.split("").map(&:to_i)
count = 0
ary.each{|i| i==1 ? count+=1 : count+=0}
p count #méthode p
puts count #met méthode
print count #méthode d'impression

production


2 #méthode p bonne réponse
2 #met méthode bonne réponse
2 #méthode d'impression bonne réponse

Dans cette question, tout modèle de sortie était correct.

Exemple de problème ③

De "Sélection Atcoder Biginners" Question 1 "Bienvenue sur AtCoder"

Étant donné les entiers a, b, c et la chaîne s. Sortez le résultat du calcul de a + b + c et la chaîne de caractères s côte à côte avec un espace demi-largeur entre les deux.

Exemple d'entrée


1
2 3
test

Exemple de réponse


a = gets.to_i
b, c = gets.split(" ").map(&:to_i)
s = gets.chomp
p "#{a+b+c} #{s}" #méthode p
puts "#{a+b+c} #{s}" #met méthode
print "#{a+b+c} #{s}" #méthode d'impression

production


"6 test" #méthode p réponse incorrecte
6 test #met méthode bonne réponse
6 test #méthode d'impression bonne réponse

Dans ce problème également, comme dans l'exemple de problème (1), seule la méthode p était incorrecte. ** Pour les problèmes qui produisent une chaîne de caractères et une réponse, il semble préférable de répondre avec la méthode put ou la méthode d'impression. ** **

finalement

C'est tout sur la façon d'utiliser la sortie standard que vous utilisez souvent.

Si vous avez des erreurs, je vous serais reconnaissant de bien vouloir les signaler.

Recommended Posts

Apprendre Ruby avec AtCoder 12 Comment utiliser correctement la sortie standard (p / met / print)
Apprendre Ruby avec AtCoder 11 Comment recevoir une entrée standard souvent utilisée
[Ruby] Comment utiliser la sortie standard dans le branchement conditionnel
Apprendre Ruby avec AtCoder 13 Comment créer un tableau à deux dimensions
Ruby print met la méthode de sortie p printf
Comment sortir le standard d'un tableau avec for Each
Comment utiliser le retour Ruby
Ruby: Comment utiliser les cookies
Apprendre Ruby avec AtCoder 6 [Concours 168 Donc]
Comment utiliser Ruby on Rails
Comment utiliser mssql-tools avec Alpine
Comment utiliser la méthode Ruby inject
Comment utiliser BootStrap avec Play Framework
Apprendre Ruby avec AtCoder 7 [Contest 168 Triple Dots]
Longueur, taille, nombre de rubis Comment utiliser
[Ruby] Comment utiliser slice pour les débutants
[Ruby on Rails] Comment utiliser redirect_to
[Ruby] Différence entre print, put et p
Ruby: CSV :: Comment utiliser la note de tableau
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
Comment utiliser h2db intégré avec Spring Boot
[Ruby] Comment utiliser la méthode gsub et la sous-méthode
Comment utiliser le framework Java avec AWS Lambda! ??
Sortie de la façon d'utiliser la méthode slice
Comment utiliser l'API Java avec des expressions lambda
AtCoder ABC127 D hash à résoudre avec Ruby 2.7.1
Comment utiliser le protocole NFS version 2 avec Ubuntu 18.04
[ruby] Comment recevoir la valeur de l'entrée standard?
[Introduction à Ruby] Comment utiliser la méthode slice
Comment utiliser Oracle JDK 9 EA avec Travis CI
Comment créer une fonction de messagerie LINE avec Ruby
Comment utiliser la bibliothèque Z3 dans Scala avec Eclipse
[Java] Comment chiffrer avec le chiffrement AES avec une bibliothèque standard
[Ruby] Comment utiliser rbenv (la version `x.x.x 'n'est pas installée)
Comment utiliser la bibliothèque JDD dans Scala avec Eclipse
Comment utiliser Map
Comment utiliser rbenv
Comment utiliser with_option
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
Comment utiliser collection_select
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment utiliser MapStruct
Comment utiliser TreeSet