ebisukeプログラミング初心者脱出黙示録

30歳を過ぎてから始めたプログラミングと競プロの記録。Pythonで取り組んでいます。Arduinoで電子工作も

SOMPO HD コンテスト(ABC192 A - Star / B - uNrEaDaBlE sTrInG)【Python解答例】

SOMPO HD プログラミングコンテスト(ABC192)に参加して3完でした。
今回もD問題まで復習していきます。
この記事ではA問題とB問題を記事にしていきます。
atcoder.jp



AtCoder Beginner Contest192 A - Star

A - Star

問題文

高橋君はゲームで遊んでいます。
このゲームでは、今までに集めたコインの枚数が 100 の倍数になるごとにご褒美がもらえます。
高橋君が今までに集めたコインの枚数は X 枚です。次にご褒美をもらうためには、あと何枚のコインを集めればよいでしょうか? (X が 100 の倍数の場合、コインを累計で X 枚集めたことに対するご褒美はすでにもらったとします。)

制約

・0≤X≤10^5

解答例

x = int(input())

tmp = x % 100

print(100 - tmp)

解説

100枚ごとにご褒美がもらえるなかで、次にご褒美がもらえる枚数を答える問題です。

tmp変数にxを100で割った値を代入します。
100からtmpの値をひいたものが解答になりますので、それを出力してACでした。

AtCoder Beginner Contest192 B - uNrEaDaBlE sTrInG

B - uNrEaDaBlE sTrInG

問題文

先頭から奇数番目の文字が全て英小文字であり、かつ、先頭から偶数番目の文字が全て英大文字であるような文字列を 読みにくい文字列 と呼びます。

文字列 S が読みにくい文字列かどうか判定してください。

制約

・S は英大文字及び英小文字のみからなる
・S の長さは 1 以上 1000 以下

解答例

s = input()

for i in range(len(s)):
    if i % 2 == 0:
        if s[i].isupper():
            print("No")
            break
    elif i % 2 == 1:
        if s[i].islower():
            print("No")
            break
else:
    print("Yes")

解説

文字列Sが与えられ、奇数番目の文字が全て英小文字かつ偶数番目の文字が全て英大文字の場合、Sは読みにくい文字列となります。
Sが読みにくい文字列かどうか判定する問題です。

問題文の通り、文字列を先頭から調べていき奇数番目(i % 2 == 0)のときに大文字か、偶数番目(i % 2 == 1)のときに小文字ならNoを出力します。
Noを出力することなくループを抜ければYesを出力してACでした。

文字列の偶奇番目を間違えそうであせりました (^_^;)




今回ABC192もD問題が解けませんでしたが、C問題までACできました。
次回はC問題を記事にしたいと思います。


ABC192の関連記事はこちら
ebisuke33.hatenablog.com
ebisuke33.hatenablog.com