パナソニックグループ プログラミングコンテスト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()