1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AtCoder Beginner Contest 281 A問題とB問題をPythonで解いてみました

Last updated at Posted at 2022-12-10

ABC281(AtCoder Beginners Contest 281)
A問題とB問題をPythonで解いてみました。

  • コードは雑めです。ゆるしてー
  • 競技プログラミングの勉強一切したこと無いので、テクニックは知らないよ。ごめんねー

A問題(diff=6)

提出コード

n = int(input())
for i in range(n,-1,-1):
  print(i)

pythonのrange便利ッスねー
ワンライナーでも行けそう

B問題(diff=66)

提出コード

def judge(s):
  try:
    if 'A'<= s[0] <= 'Z' and 'A'<= s[7] <= 'Z':
      num = int(s[1:7])
      if 100000 <= num <= 999999:
        return 'Yes'
  except:
    pass
  return 'No'
 
s = input()
print(judge(s))

文字列は必ずしも8文字と限らない(IndexErrorが出る)
真ん中の数字部分も英文字が混ざる可能性がある(ValueErrorが出る)
ので if文使うより便利だろうということで bare except を使用しました
関数化したのは趣味ですね。人それぞれで良いかと。
bare except はPython公式ドキュメントにも記載がありますがアプリ開発ではあまり使わないでね

追記

PythonでAtCoderを解くときにちょっと得するメモを使うともう少し短く書けるとは思う

B問題 A123456BC みたいなのが本来はだめなのに Yes って出そう

  • 指摘があったので追記しておきます。
  • たまたまACしていますが、言われてみると確かにおかしいですね。
  • テストケースに上記のようなパターンがなかったものと思われます。
1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?