J'étais intéressé par AtCoder et j'ai essayé de taper le code directement dans le navigateur. Alors, bien sûr, je voulais le déplacer localement et le vérifier avant de le télécharger. Puis, six mois plus tard, j'aimerais me dire: "Quoi, je ne savais pas ça?", Donc je veux garder la source. (Eh bien, localement.) Ensuite, au fait, ayons un exemple de problème dans le code, testons-le et attendons qu'il soit OK. Donc, j'ai ajouté un mode de fonctionnement et créé un framework (?) - Comme une fonction facile à évaluer.
J'ai entendu dire qu'il y a un casse-tête qui semble intéressant ... Non, je connaissais l'existence elle-même, mais le contenu était trop enthousiaste, et je pensais que c'était un peu comme ça, alors j'ai abandonné. Cependant, quand j'ai entendu que je pouvais participer à AtCoder on Scratch, j'ai dit: "Eh bien, n'est-ce pas un expert?" .. ..
Ensuite, j'ai pensé que je pourrais participer pour la première fois. Faux. J'ai pensé que je commencerais.
Créez un fichier .py qui peut être démarré indépendamment Fonctionnement normal (pour soumission) sans arguments Entrez 1, 2 etc. comme argument et affichez le résultat de l'implémentation du modèle de test et OK / NG présentés dans l'énoncé du problème.
■A - Welcome to AtCoder https://atcoder.jp/contests/practice/tasks/practice_1
practice_1.py
# répondre
def practice_1(lines):
a = int(lines[0])
b, c = map(int, lines[1].split(' '))
s = lines[2]
return [str(a+b+c) + ' ' + s]
# Obtenir l'argument
def get_input_lines(lines_count):
lines = list()
for _ in range(lines_count):
lines.append(input())
return lines
# données de test
def get_testdata(pattern):
if pattern == 1:
lines_input = ['1', '2 3', 'test']
lines_export = ['6 test']
elif pattern == 2:
lines_input = ['72', '128 256', 'myonmyon']
lines_export = ['456 myonmyon']
return lines_input, lines_export
# Détermination du mode de fonctionnement
def get_mode():
import sys
args = sys.argv
if len(args) == 1:
mode = 0
else:
mode = int(args[1])
return mode
# Traitement principal
def main():
mode = get_mode()
if mode == 0:
lines_input = get_input_lines(3)
else:
lines_input, lines_export = get_testdata(mode)
lines_result = practice_1(lines_input)
for line_result in lines_result:
print(line_result)
if mode > 0:
print(f'lines_input=[{lines_input}]')
print(f'lines_export=[{lines_export}]')
print(f'lines_result=[{lines_result}]')
if lines_result == lines_export:
print('OK')
else:
print('NG')
# Démarrez le processus
if __name__ == '__main__':
main()
(Résultat de sortie)
(base) ...>python practice_1.py 1
6 test
lines_input=[['1', '2 3', 'test']]
lines_export=[['6 test']]
lines_result=[['6 test']]
OK
(base) ...>python practice_1.py 2
456 myonmyon
lines_input=[['72', '128 256', 'myonmyon']]
lines_export=[['456 myonmyon']]
lines_result=[['456 myonmyon']]
OK
(base) ...>python practice_1.py
3
5 7
abc
15 abc
https://atcoder.jp/contests/abc173/tasks/abc173_a
abc173_a.py
# répondre
def abc173_a(lines):
N = int(lines[0])
amari = N % 1000
if amari == 0:
answer = 0
else:
answer = 1000 - amari
return [answer]
# Obtenir l'argument
def get_input_lines(lines_count):
lines = list()
for _ in range(lines_count):
lines.append(input())
return lines
# données de test
def get_testdata(pattern):
if pattern == 1:
lines_input = ['1900']
lines_export = [100]
elif pattern == 2:
lines_input = ['3000']
lines_export = [0]
return lines_input, lines_export
# Détermination du mode de fonctionnement
def get_mode():
import sys
args = sys.argv
if len(args) == 1:
mode = 0
else:
mode = int(args[1])
return mode
# Traitement principal
def main():
mode = get_mode()
if mode == 0:
lines_input = get_input_lines(1)
else:
lines_input, lines_export = get_testdata(mode)
lines_result = abc173_a(lines_input)
for line_result in lines_result:
print(line_result)
if mode > 0:
print(f'lines_input=[{lines_input}]')
print(f'lines_export=[{lines_export}]')
print(f'lines_result=[{lines_result}]')
if lines_result == lines_export:
print('OK')
else:
print('NG')
# Démarrez le processus
if __name__ == '__main__':
main()
(Résultat de sortie)
(base) >python abc173_a.py 1
100
lines_input=[['1900']]
lines_export=[[100]]
lines_result=[[100]]
OK
(base) >python abc173_a.py 2
0
lines_input=[['3000']]
lines_export=[[0]]
lines_result=[[0]]
OK
(base) >python abc173_a.py
2380
620
(
https://atcoder.jp/contests/abc173/tasks/abc173_b
abc173_b.py
# répondre
def abc173_b(lines):
labels = ['AC', 'WA', 'TLE', 'RE']
ns = [0, 0, 0, 0]
for line in range(1, len(lines)):
for i, label in enumerate(labels):
if label == lines[line]:
ns[i] += 1
answers = list()
for i, label in enumerate(labels):
answers.append(label + ' x ' + str(ns[i]))
return answers
# Obtenir l'argument
def get_input_lines_1stline_as_n_lines():
lines = list()
lines.append(input())
for _ in range(int(lines[0])):
lines.append(input())
return lines
# données de test
def get_testdata(pattern):
if pattern == 1:
lines_input = ['6', 'AC', 'TLE', 'AC', 'AC', 'WA', 'TLE']
lines_export = ['AC x 3', 'WA x 1', 'TLE x 2', 'RE x 0']
elif pattern == 2:
lines_input = ['10', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC']
lines_export = ['AC x 10', 'WA x 0', 'TLE x 0', 'RE x 0']
return lines_input, lines_export
# Détermination du mode de fonctionnement
def get_mode():
import sys
args = sys.argv
if len(args) == 1:
mode = 0
else:
mode = int(args[1])
return mode
# Traitement principal
def main():
mode = get_mode()
if mode == 0:
lines_input = get_input_lines_1stline_as_n_lines()
else:
lines_input, lines_export = get_testdata(mode)
lines_result = abc173_b(lines_input)
for line_result in lines_result:
print(line_result)
if mode > 0:
print(f'lines_input=[{lines_input}]')
print(f'lines_export=[{lines_export}]')
print(f'lines_result=[{lines_result}]')
if lines_result == lines_export:
print('OK')
else:
print('NG')
# Démarrez le processus
if __name__ == '__main__':
main()
(Résultat de sortie)
(base) >python abc173_b.py 1
AC x 3
WA x 1
TLE x 2
RE x 0
lines_input=[['6', 'AC', 'TLE', 'AC', 'AC', 'WA', 'TLE']]
lines_export=[['AC x 3', 'WA x 1', 'TLE x 2', 'RE x 0']]
lines_result=[['AC x 3', 'WA x 1', 'TLE x 2', 'RE x 0']]
OK
(base) >python abc173_b.py 2
AC x 10
WA x 0
TLE x 0
RE x 0
lines_input=[['10', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC', 'AC']]
lines_export=[['AC x 10', 'WA x 0', 'TLE x 0', 'RE x 0']]
lines_result=[['AC x 10', 'WA x 0', 'TLE x 0', 'RE x 0']]
OK
(base) >python abc173_b.py
5
AC
AC
WA
TLE
TLE
AC x 2
WA x 1
TLE x 2
RE x 0
Eh bien, pour le moment, c'est ça. Avec l'attitude de commencer plutôt que d'en faire le meilleur. Peut-être que si je continue, je ferai beaucoup de changements.
Pour le moment, Welcome est devenu AC tel qu'il est, alors mettons cela à partir d'aujourd'hui. ABC173 a lu de A à F, mais D n'est pas très bien sorti. F était déroutant et n'avait pas envie de lire. Quand j'ai écrit le code pour E, il est devenu sobre et fastidieux et interrompu. Eh bien, je me demande s'il est normal de s'y habituer après D. C était aussi beaucoup de problèmes.
Je me demande si mon style s'améliorera en assemblant et organisant logiquement mes pensées, alors je pense que j'aimerais aborder les problèmes et prendre un peu de temps pour regarder la vidéo du commentaire ... Si vous continuez. .. ..
Recommended Posts