Ich war an AtCoder interessiert und habe versucht, den Code direkt in den Browser einzugeben. Also wollte ich es natürlich lokal verschieben und überprüfen, bevor ich es hochlade. Dann, ein halbes Jahr später, möchte ich mir sagen: "Was, ich wusste das nicht?", Also möchte ich die Quelle behalten. (Nun, vor Ort.) Lassen Sie uns dann übrigens ein Beispielproblem als Teil des Codes haben, es testen und warten, bis es in Ordnung ist. Also habe ich einen Betriebsmodus hinzugefügt und eine Framework (?) - Like-Funktion erstellt, die einfach zu bewerten ist.
Ich habe gehört, dass es ein Rätsel gibt, das interessant zu sein scheint ... Nein, ich kannte die Existenz selbst, aber der Inhalt war zu enthusiastisch, und ich dachte, es wäre ein bisschen so, also gab ich es auf. Als ich jedoch hörte, dass ich an AtCoder on Scratch teilnehmen könnte, sagte ich: "Nun, ist es kein Experte?" .. ..
Dann dachte ich, ich könnte zum ersten Mal teilnehmen. Falsch. Ich dachte, ich würde anfangen.
Erstellen Sie eine .py-Datei, die unabhängig gestartet werden kann Normalbetrieb (zur Einreichung) ohne Argumente Geben Sie 1, 2 usw. als Argument ein und geben Sie das Ergebnis der Testmusterausführung und OK / NG aus, die in der Problemstellung angegeben sind.
■A - Welcome to AtCoder https://atcoder.jp/contests/practice/tasks/practice_1
practice_1.py
# Antworten
def practice_1(lines):
a = int(lines[0])
b, c = map(int, lines[1].split(' '))
s = lines[2]
return [str(a+b+c) + ' ' + s]
# Holen Sie sich Argument
def get_input_lines(lines_count):
lines = list()
for _ in range(lines_count):
lines.append(input())
return lines
# Testdaten
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
# Betriebsartenermittlung
def get_mode():
import sys
args = sys.argv
if len(args) == 1:
mode = 0
else:
mode = int(args[1])
return mode
# Hauptverarbeitung
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')
# Prozess starten
if __name__ == '__main__':
main()
(Ausgabeergebnis)
(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
# Antworten
def abc173_a(lines):
N = int(lines[0])
amari = N % 1000
if amari == 0:
answer = 0
else:
answer = 1000 - amari
return [answer]
# Holen Sie sich Argument
def get_input_lines(lines_count):
lines = list()
for _ in range(lines_count):
lines.append(input())
return lines
# Testdaten
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
# Betriebsartenermittlung
def get_mode():
import sys
args = sys.argv
if len(args) == 1:
mode = 0
else:
mode = int(args[1])
return mode
# Hauptverarbeitung
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')
# Prozess starten
if __name__ == '__main__':
main()
(Ausgabeergebnis)
(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
# Antworten
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
# Holen Sie sich 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
# Testdaten
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
# Betriebsartenermittlung
def get_mode():
import sys
args = sys.argv
if len(args) == 1:
mode = 0
else:
mode = int(args[1])
return mode
# Hauptverarbeitung
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')
# Prozess starten
if __name__ == '__main__':
main()
(Ausgabeergebnis)
(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
Nun, vorerst ist es das. Mit der Einstellung zu starten, anstatt es am besten zu machen. Wenn ich weitermache, werde ich vielleicht viele Änderungen vornehmen.
Willkommen ist vorerst zu AC geworden, so wie es ist. Lassen Sie uns dies ab heute aufstellen. ABC173 las von A nach F, aber D kam nicht sehr gut heraus. F war verwirrend und hatte keine Lust zu lesen. Als ich den Code für E schrieb, wurde er nüchtern und langweilig und unterbrochen. Nun, ich frage mich, ob es in Ordnung ist, sich nach D daran zu gewöhnen. C war auch eine Menge Ärger.
Ich frage mich, ob mein Stil durch logisches Zusammenstellen und Organisieren meiner Gedanken besser wird. Ich denke, ich möchte die Probleme angehen und mir das Kommentarvideo ein wenig ansehen ... Wenn Sie fortfahren. .. ..
Recommended Posts