PythonでAtCoderの過去問を解いています。
ABC 057A – Remaining Time
イルカはプログラミングコンテスト好きで、今日はAtCoderのコンテストに参加します。
現在時刻は、24時間表記 (0:00〜23:59)で A時ちょうどであり、コンテストがちょうど B時間後に始まります。
コンテストの開始時刻は、24時間表記で何時ちょうどでしょうか?
自分の回答
A, B = map(int, input().split())
print((A + B) % 24)
時刻は24で割った余りを出力するようにすると、24時間表記で出力できます。
例えば、25時になった場合、25%24=1となります。
ABC 058A – ι⊥l
3本の柱が等間隔に並んでいます。柱の高さは左から順に aメートル, bメートル, cメートル です。 柱の先端が同一直線上に並んでいる時、つまりb−a=c−bを満たしているとき、 この柱の並び方を美しいと呼びます。
柱の並び方が美しいかどうかを判定してください。
自分の回答
a, b, c = map(int, input().split())
if b - a == c - b:
print("YES")
else:
print("NO")
問題文の通り、b – a = c – bの時は”YES”、そうでない時は”NO”を出力すればいいですね。
ABC 059A – Three-letter acronym
問題
英小文字からなる3つの単語s1,s2,s3が空白区切りで与えられるので、単語の先頭の文字をつなげ、大文字にした略語を出力してください。
自分の回答
a, b, c = input().split()
print(str.upper(a[0] + b[0] + c[0]))
大文字に変換するために新たな関数がでてきました。
str.upper関数
文字を大文字化します。小文字化する場合には、str.lower()を使います。
ABC 060A – Shiritori
問題
文字列 A, B, Cが与えられます。これがしりとりになっているか判定してください。
- Aの最後の文字とBの最初の文字が同じ
- Bの最後の文字とCの最初の文字が同じ
この2つが正しいか判定してください。
両方とも正しいならば YES
、そうでないならば NO
を出力してください。
自分の回答
A, B, C = input().split()
if B[0] == A[len(A) - 1] and C[0] == B[len(B) - 1]:
print("YES")
else:
print("NO")
文字列Aの最後の文字を取得したい時はA[len(A) – 1]で求められます。len(A)で文字数を求めて、その値から1を引いたものが、最後の文字列に該当します。
ABC 061A – Between Two Integers
問題
3つの整数 A,B,Cが与えられます。
整数 CがA以上 かつ B以下であるかを判定してください。
自分の回答
A, B, C = map(int, input().split())
if A <= C <= B:
print("Yes")
else:
print("No")
問題文の通りですね。他の言語とは違って、不等式を繋げてかけるのがPythonの便利なところですね。