【AtCoder】ABC326解説(Python)

パナソニックグループ プログラミングコンテスト2023(AtCoder Beginner Contest 326)の解説記事です。

目次

ABC326 A – 2UP3DOWN

問題

解説

if文で条件を満たすか判定する。

解説

高橋君が \(X\) 階から \(Y\) 階に移動するとき、階段を使うのは、\(Y – X\) が \(– 3\) から \(2\) までの場合で、それ以外の時はエレベーターを使います。

まず入力 \(X, Y\) をintとして受け取ります。

# 入力
X,Y=map(int,input().split())

-3<=Y-X<=2を満たすときはYes、それ以外の時はNoを出力します。

# 出力
print('Yes' if -3<=Y-X<=2 else 'No')

解答

# 入力
X,Y=map(int,input().split())

# 出力
print('Yes' if -3<=Y-X<=2 else 'No')

ABC326 B – 326-like Numbers

問題

解説

数字を文字列として考えて各桁を求め、再度、各桁をint型に変換して計算する、

解説

まず入力 \(N\) をintとして受け取ります。

# 入力
N=int(input())

考えるのは \(N\)  以上の最小の 326-like number なので、入力値から制約上最大の919までをfor文でループします。

for文の中では数字を文字列に変換して百の位の数と十の位の数の積が一の位の数と等しいかどうかをif文で判定します。条件を満たしたとき、該当の数字を出力して終了exit()します。

# 入力値から最大の919までを考える
for i in range(N,920):
  # 数字を文字列に変換
  i=str(i)
  # 百の位の数と十の位の数の積が一の位の数と等しいかどうかを判定
  if int(i[0])*int(i[1])==int(i[2]):
    print(i)
    exit()

解答

# 入力
N=int(input())

# 入力値から最大の919までを考える
for i in range(N,920):
  # 数字を文字列に変換
  i=str(i)
  # 百の位の数と十の位の数の積が一の位の数と等しいかどうかを判定
  if int(i[0])*int(i[1])==int(i[2]):
    print(i)
    exit()
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次