LoginSignup
3
1

More than 5 years have passed since last update.

Pythonで競プロに挑む日誌 vol.22 ~提出前のテスト~

Posted at

現在の目標

  • 2018年内に茶色になる←イマココ
    • ABC の A, B 問題を全部解く
  • 2018年度内に緑色を取得する
    • ABC の C 問題を全部解く
  • (水色になったら, APG4b で C++ にも手を出す)

今日のおはなし

結論

問題文の入出力例以外でもテストケースを考えよう.

解いた問題

B - Counting Roads

入出力例だけでは穴がある

入出力例では Pass するのに, 提出したら WA となりました.

WA.py
# coding: utf-8
N, M = map(int, input().split())

val = ",".join([input().replace(" ",",") for _ in range(M)])
print(val)
for i in range(1, N+1):
    print(val.count(str(i)))

下記で通りました.

AC.py
# coding: utf-8
N, M = map(int, input().split())

lst=[]
for _ in range(M):
    lst += input().split()
for i in range(1, N+1):
    print(lst.count(str(i)))

文字列の連結で処理しようとすると, N が一桁であれば所望の値が出力されますが, 二桁になるとダメですね. たとえば, "12" という文字は 1 と 2 が一つずつあると判断されてしまいます.

今回はすぐ気づいたのですが, 提出前のテストで気づきたかったところ. テストのコツとかあるんでしょうか. とりあえず, 境界値や, 入出力例以外の条件でテストしてからコードを提出するのがよさそうですかね.

というか, AtCoder のテストケース公開されないかな..

むすび

paiza のレッスン でも眺めて, 勉強しよう.

3
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1