[AtCoder]ABC057A ~ 061A[Python]

プログラミング

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の便利なところですね。

タイトルとURLをコピーしました