[Exemple de réponse (python3)] ABS (AtCoder Beginners Selection) de atcoder

introduction

Je n'ai pas fait de programmation de concours récemment, donc Je voulais résoudre un problème aussi simple qu'un exercice cérébral.

J'ai déjà résolu ABC (AtCoder Beginner Contest) de AtCoder, En parlant de cela, je n'ai pas fait une collection de questions pour les débutants d'AtCoder appelée ABS (AtCoder Beginners Selection), j'ai donc profité de cette opportunité pour résoudre les 10 questions. ..

PracticeA: Welcome to AtCoder Répondez simplement en fonction de la phrase de la question! Il n'y a aucun problème si un simple traitement d'entrée / sortie peut être effectué.

a = int(input())
b,c = map(int, input().split())
s = str(input())
 
print(a+b+c, s)

ABC086A: Product De la même manière, répondez en fonction du texte de la question.

a,b = map(int, input().split())
 
sum = a*b
if sum % 2 ==0:
    print("Even")
else:
    print("Odd")

ABC081A: Placing Marbles De même, répondez en fonction du texte de la question.

s = str(input())
 
print(s.count('1'))

ABC081B: Shift only Je me suis précipité dans le problème B d'ABC. J'utiliserai un peu ma tête de cette zone. Lorsque je comprends ce qu'il faut demander dans l'énoncé du problème, Tout ce que vous avez à faire est de factoriser chaque $ A_1, \ dots, A_N $ en facteurs premiers et y trouver le plus petit nombre de 2. Je l'ai implémenté en référence à here.

import collections
 
 
def prime_factorize(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    return a
 
n = int(input())
l = list(map(int, input().split()))
 
prime_list = [ dict(collections.Counter(prime_factorize(i)).items()) for i in l ]
try:
    count_2_list = [ d[2] for d in prime_list ]
    print(min(count_2_list))
except KeyError:
    print(0)

Le code s'allonge. Puisqu'il demande la puissance de 2, il était plus intelligent de le convertir en nombre binaire et de le traiter. Référence) https://qiita.com/watyanabe164/items/5c26fd9d8d244c5f2483

ABC087B: Coins Puisque A, B et C avaient 50 ou moins, j'ai tout simplement cherché.

def equal_x_count(p,q,r,z):
    count = 0
    for i in range(p+1):
        for j in range(q+1):
            for k in range(r+1):
                if 500*i + 100*j + 50*k == z:
                   count += 1
    return count
 
 
a = int(input())
b = int(input())
c = int(input())
x = int(input())
 
print(equal_x_count(a,b,c,x))

ABC083B: Some Sums Convertir n assigné comme type numérique en type chaîne, La chaîne de caractères extraite pour chaque chiffre a été de nouveau numérisée et traitée.

n, a, b = map(int, input().split())
 
count = 0
for i in range(n+1):
    sum_each_digit = sum([ int(j) for j in str(i)])
    if a <= sum_each_digit and sum_each_digit <= b:
        count += i
 
print(count)

ABC088B: Card Game for Two Attribuer une entrée à la liste et trier la liste par ordre décroissant Ajouter un nombre pair (0,2,4), soustraire un nombre impair (1,3,5)

n = int(input())
a = list(map(int, input().split()))
 
sorted_a = sorted(a, reverse=True)
alice_list = []
bob_list = []
 
for i in range(n):
    if i % 2 == 0:
        alice_list.append(sorted_a[i])
    else:
        bob_list.append(sorted_a[i])
 
d = sum(alice_list) - sum(bob_list)
 
print(d)

ABC085B: Kagami Mochi C'est facile si vous convertissez ce que vous obtenez dans la liste en un ensemble et comptez le nombre d'éléments.

n = int(input())
d = [int(input()) for _ in range(n)]
 
print(len(set(d)))

ABC085C: Otoshidama Tout ce que vous avez à faire est de parcourir toute la recherche.

n, y = map(int, input().split())
 
for i in range(n+1):
    for j in range(n-i+1):
        if 10000*i + 5000*j + 1000*(n-i-j) == y:
            print(i,j,n-i-j)
            exit()
print(-1,-1,-1)

ABC049C: Rêve diurne

Faites attention à la fin de l'entrée S, coupez la fin s'il y a une correspondance et mettez-y S. Répétez ceci.

s = str(input())
 
while True:
    if s[-5:] == 'dream' or s[-5:] == 'erase':
        s = s[:-5]
    elif s[-6:] == 'eraser':
        s = s[:-6]
    elif s[-7:] == 'dreamer':
        s = s[:-7]
    elif s == '':
        print('YES')
        break
    else:
        print('NO')
        break

ABC086C: Traveling Si vous étiez aux coordonnées ($ x, $ y) au temps $ t_n, vous pouvez vérifier si vous pouvez vous déplacer vers les coordonnées ($ x ', $ y') au temps $ t_ (n + 1). Considérons le cas de 1 <= t <= n.

Si vous lisez les conditions préalables ci-dessus à partir de l'énoncé du problème, vous pouvez l'implémenter avec le code suivant.

import numpy as np
import sys
 
n = int(input())
l = [ list(map(int, input().split())) for _ in range(n)]
 
l.insert(0, [0,0,0])
 
for i in range(n):
    d = np.array(l[i+1]) - np.array(l[i])
    time, move = d[0], abs(d[1])+abs(d[2])
    if move > time or (time - move) % 2 != 0:
        print('No')
        sys.exit()
 
print('Yes')

Grâce à l'implémentation de numpy dans AtCoder, sa mise en œuvre a été relativement simple.

finalement

ABS peut bien répondre sans aucune connaissance algorithmique. Ce qui précède est un exemple de réponse, donc si vous souhaitez coder plus intelligemment, veuillez vérifier les autres modèles de réponses.

Recommended Posts

[Exemple de réponse (python3)] ABS (AtCoder Beginners Selection) de atcoder
Réponse à la sélection des débutants d'AtCoder par Python3
Mémorandum de sélection pour débutants AtCoder
Expérience de sélection des débutants AtCoder (2e fois)
# 2 Les débutants en Python défient AtCoder! ABC085C --Otoshidama
Mémorandum du débutant Mouvement "isdigit" Python
Apprenez les bases de Python ① Débutants élémentaires
[Python] Compte-rendu de la réunion d'étude pour les débutants (7/15)
atCoder 173 Python
Mémorandum des débutants en python
Exemple d'analyse de squelette tridimensionnelle par Python
[Python] Résolvez 10 problèmes d'élite passés d'Atcoder
Ensemble d'entrées standard Atcoder pour les débutants (python)
Un exemple de réponse à la question de référence de la session d'étude. Avec python.
[AtCoder] Résoudre un problème de ABC101 ~ 169 avec Python
Exemple de prise de Python> function> * args comme argument
La réponse de "1/2" est différente entre python2 et 3
[Python] Rotation à droite de 90 degrés, rotation à gauche de 90 degrés, rotation de la matrice à 180 degrés [AtCoder]
Compréhension facile de Python pour les tableaux et (pour les super débutants)
Exemple de lecture et d'écriture de CSV avec Python
Histoire de base de l'héritage en Python (pour les débutants)
Les bases de Python ①
Bases de python ①
Les débutants pratiquent Python
Note du débutant Python
AtCoder ABC 175 Python
Introduction de Python
[Traitement du langage 100 coups 2020] Résumé des exemples de réponses par Python
Exemple d'implémentation d'un système de traitement LISP simple (version Python)
Il est devenu bleu après 9 mois d'histoire d'Atcoder (python)
Ruby, exécution de fragments de code Python de la sélection dans Emacs
Reproduire l'exemple d'exécution du chapitre 4 de Hajipata en Python
Examen de atcoder ABC158, jusqu'à la question E (Python)
Reproduire l'exemple d'exécution du chapitre 5 de Hajipata en Python