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

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

AtCoder-ABC218 A - Weather Forecast / B - qwerty【Python解答例】

AtCoder Beginner Contest218のA とB問題についてPythonの解答例を記事にしていきます。
AtCoder Beginner Contest 218 - AtCoder



AtCoder Beginner Contest218 A - Weather Forecast

A - Weather Forecast

問題文

明日からの 7 日間の天気予報を表す文字列 S が与えられます。
i 日後の予報は S の i 文字目が o であるとき晴れ、x であるとき雨です。

N 日後の天気予報が晴れかどうかを教えてください。

制約

・N は 1 以上 7 以下の整数
・S は長さ 7 の文字列であり、o と x のみからなる

解答例

n = int(input())

s = input()

if s[n-1] == "o":
    print("Yes")
else:
    print("No")

解説

文字列SのN文字目がoかxかを答える問題です。

Nは整数なのでint型で、Sは文字列なのでstr型で入力を受け取ります。

SのN文字目はS[N-1]なのでS[N-1]がoならYesを出力し、oでないならNoを出力すればOKです。



AtCoder Beginner Contest218 B - qwerty

B - qwerty

問題文

1 以上 26 以下の整数からなる長さ 26 の数列 P=(P 1​ ,P 2​ ,…,P 26​ ) が与えられます。ここで、P の要素は相異なることが保証されます。

以下の条件を満たす長さ 26 の文字列 S を出力してください。

・任意の i(1≤i≤26) について、S の i 文字目は辞書順で小さい方から P i​ 番目の英小文字である。

制約

・1 ≤ P i​ ≤ 26
・P i​ ≠ P j​ (i ≠ j)
・入力は全て整数である。

解答例

P = list(map(int, input().split()))

ans = ""

for i in range(26):
    tmp = chr(P[i] + 96)
    ans += tmp

print(ans)

解説

Pythonの場合、chr(値)で数値を文字列に変換できます。

asciiコードの97がaに該当するので、chr(P[i] + 96)においてP[i] = 1なら a 、P[i]= 26ならzに変換できます。

これで26個の整数を英子文字に置き換えて、ansに足しあわせていきました。

最後にansを出力すればACでした。



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