[Pour les débutants des professionnels de la compétition] Trois méthodes de saisie à retenir lors du démarrage de la programmation de compétition avec Python

Il a fait ses débuts en Python pour la programmation compétitive le 22 août 2020. Participant était AtCoder, qui vient à l'esprit quand il s'agit de la programmation compétitive au Japon.

Avant de commencer à apprendre Python, je me suis inscrit en tant que membre et j'étais prêt à commencer. Quand avez-vous résolu les questions précédentes? ?? J'ai gardé que j'ai doucement enregistré avec AtCoder dans la salle de stockage de mon cœur.

Pourquoi ne pourriez-vous pas travailler sur des programmes compétitifs?

La raison est simple.

** Parce que je suis tombé sur la partie d'entrée standard en Python en premier lieu orz **

Bien sûr, j'avais lu le livre d'introduction sur Python à ce moment-là, donc je savais que je devais utiliser input comme méthode d'entrée. Cependant, ma compréhension de la contribution était extrêmement insuffisante.

En parlant de saisie gérée dans le Python Primer

En parlant d'entrée, il apparaîtra dans les chapitres 1 et 2 après la configuration de l'environnement dans Python Primer. Je m'abstiendrai de l'exemple de code, mais l'exemple de code qui produit une telle sortie est publié.

$:Entrez le texte! : ○○
$:salut! ○○

Même si vous passez aux chapitres suivants, vous avez tendance à étudier d'autres contenus plutôt que d'apprendre diverses façons d'utiliser les entrées. En conséquence, même si je connaissais les entrées, je ne les comprenais pas. Je l'ai défié à des programmes compétitifs et j'en ai été mis au courant. En un clin d'œil, ma tête s'est figée et j'ai fermé l'onglet AtCoder ...

Comment utiliser 3 entrées à retenir en résolvant des questions passées

Pendant ce temps, en augmentant les chances d'écrire correctement le code, j'étais motivé pour essayer à nouveau la programmation compétitive, alors je suis retourné à AtCoder à nouveau.

** "Même si je ne sais pas cette fois, je vais essayer de google sans me figer." **

Dans cet esprit, lorsque j'ai étudié en profondeur la méthode de saisie, j'ai pu résoudre les problèmes A et B. Le problème C lutte avec la quantité de calcul O (N ^ 2) et souffre du mur "TLE" qui dépasse la limite de temps ...

Pendant ce temps, il s'est avéré que «l'entrée standard» de la partie d'introduction sur laquelle je suis tombé par hasard et que j'ai jeté était principalement résumée dans les trois suivantes. ** **

Entrez un entier

a = int(input())

Un modèle avec un entier entré sur une ligne. Le problème B du concours AtCoder Beginner Contest 176 du 22 août 2020 était ce modèle. Cependant, il y a peu de cas où un seul entier est entré, et il y a de nombreux cas où les questions sont fondamentalement combinées avec les deux modèles décrits plus loin.

Entrez plusieurs entiers

a,b,c = map(int,input().split())

Il s'agit d'un modèle dans lequel le nombre d'entiers à saisir augmente et devient multiple. Le problème dans AtCoder Beginner Contest 176 était ce modèle. Lors de la saisie de plusieurs entiers sur une ligne, split () est intégré afin qu'ils puissent être séparés par des espaces.

Entrez un entier sous forme de liste

A = list(map(int,input().split()))

Si vous n'avez pas décidé du nombre à saisir, enregistrez les entiers saisis dans la liste. Le problème C dans AtCoder Beginner Contest 176 était une combinaison d'une seule entrée entière et d'une liste d'entrées entières.

En apprenant ces trois méthodes d'entrée, vous pouvez éviter l'entrée standard, qui est la première pierre d'achoppement dans la programmation concurrentielle. Bien sûr, il existe de nombreux autres formats d'entrée, mais si vous les utilisez trop, votre tête surchauffera. ** Il est également important de déclarer fièrement que vous ne vous en souvenez plus. ** **

Résumé / À la fin

Évitez la première pierre d'achoppement "entrée standard" dans la programmation de compétition avec les trois suivants

#Entrez un entier
a = int(input())
#Entrez plusieurs entiers
a,b,c = map(int,input().split())
#Entrez un entier sous forme de liste
A = list(map(int,input().split()))

Si vous pouvez résoudre les problèmes A et B, vous serez motivé pour faire une programmation compétitive!

Recommended Posts

[Pour les débutants des professionnels de la compétition] Trois méthodes de saisie à retenir lors du démarrage de la programmation de compétition avec Python
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Entrée standard Python3 pour une programmation compétitive
Essayez de calculer RPN avec Python (pour les débutants)
Introduction à la programmation (Python) TA Tendency pour les débutants
Histoire de base de l'héritage en Python (pour les débutants)
Analyse des données en Python Résumé des sources que les débutants devraient d'abord consulter
[Pour les débutants] Comment utiliser la commande say avec python!
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
La méthode minimale à retenir lors de l'agrégation de données avec Pandas
Re: Vie de programmation compétitive à partir de zéro Pour que les débutants puissent obtenir des performances encore un peu plus élevées ~ ABC154 ~ 156 avec impressions ~
Choses à surveiller lors de l'utilisation d'arguments par défaut en Python
Comment entrer / sortir des valeurs à partir d'une entrée standard dans la programmation de compétition, etc.
Technique Python pour ceux qui veulent se débarrasser des débutants
Re: Vie de programmation compétitive à partir de zéro Chapitre 1.2 "Python of tears"
Exécutez unittest en Python (pour les débutants)
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_3
[Doit lire pour les débutants!?] Glossaire des termes à trébucher lors de l'apprentissage de la programmation
Conseils (entrée / sortie) à connaître lors de la programmation de compétitions avec Python2
Procédure du développement AWS CDK (Python) à la construction de ressources AWS * Pour les débutants
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_1
Erreur due à UnicodeDecodeError lors de la lecture d'un fichier CSV avec Python [Pour les débutants]
J'ai refactoré "J'ai essayé de faire d'Othello AI lorsque les débutants en programmation ont étudié python"
Introduction à la base de données Graph Neo4j en Python pour les débutants (pour Mac OS X)
Explication d'approche pour que les débutants soient dans le top 1,5% (0,83732) dans Kaggle Titanic_2
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
"Programmation Python AI" à partir de 0 pour Windows
Résumé de diverses instructions for en Python
Résumé des méthodes intégrées, etc. de la liste Python
[Programmation de compétition] [Python3] Connaissances nécessaires, pour vous-même
Ensemble d'entrées standard Atcoder pour les débutants (python)
[python] Que faire si vous obtenez une erreur avec send_keys dans le chrome sans tête
Points à garder à l'esprit lors de l'utilisation de Python pour ceux qui utilisent MATLAB
[Pour les débutants] Comportement inattendu si "\" est inclus lors de la définition du chemin en Python
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Mémo n ° 4 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Le moyen le plus rapide pour les débutants de maîtriser Python
Une introduction à la programmation orientée objet pour les débutants par les débutants
Python pour les super débutants Super débutants Python # Facile à éliminer
Résumé de la façon d'importer des fichiers dans Python 3
Mémo n ° 3 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Résumé de l'utilisation de MNIST avec Python
Mémo n ° 1 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Traitement d'image? L'histoire du démarrage de Python pour
Compréhension facile de Python pour les tableaux et (pour les super débutants)
Mémo n ° 2 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Programme de recherche complète des séquences (pour la programmation du concours)
Décomposition en facteurs premiers ver.2 des entiers entrés en Python
Liste de code Python à déplacer et à mémoriser
Mémo n ° 7 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Erreur lors de la tentative d'installation de psycopg2 en Python
Mémo n ° 6 pour les débutants Python à lire "Explication détaillée de la grammaire Python"
Comment rendre le Python des débutants plus rapide [numpy]
[Pour les débutants] Comment étudier la programmation Mémo privé
Mémo n ° 5 que les débutants Python lisent "Explication détaillée de la grammaire Python"
[Introduction pour les débutants] Manipuler MySQL avec Python
[Pour les débutants] Introduction à la vectorisation dans l'apprentissage automatique
[Python] Construire un environnement pour la programmation de compétition avec Atom (input () peut être utilisé!) [Mac]