zenn.devに投稿している解答例のうちABC-046~050[A・B]へのリンクを簡単な補足とともに貼っておきます。
ABC-046
A - AtCoDeerくんとペンキ
配列に格納したペンキの色の重複を取り除いてから個数を数えればいいですね。
今になってみるとわざわざlist()
を使わなくてもset()
のままで個数は出ますね。
B - AtCoDeerくんとボール色塗り
最初の1個はK
色の中から選択できますが、それ以降は直前に選択した色を除いたK-1
色から選ぶことになります。
ということでボールが1個の時はそのままK
、それ以外の場合はK * (K - 1) * (K - 1) ...
となりますが、ループではなく以下のようにした方が良かったかもしれませんね。
print(K * ((K - 1) ** (N - 1)))
ABC-047
A - キャンディーと2人の子供
3つのものを2つに分けて同じ数にするわけですから、一番大きい数とそれ以外の2つの合計が同じになればYes
となります。
B - すぬけ君の塗り絵 2 イージー
指定された長方形を配列m
で作成して1
で埋めます。
あとは入力データにしたがって配列m
内を0
でクリアしていき、最終的に1
のまま残った要素の数を数えれば答えが出ます。
何となく冗長な気もするので、もっとスッキリした方法があるのかもしれませんね。
ABC-048
A - AtCoder *** Contest
入力された3つの文字列の先頭の1文字を結合するだけですね。
B - Between a and b ...
a // x
とb // x
の差を求めればいいのですが、a
自体は対象に含まれるので実際にはa-1
を割ることになります。
また、a
が0
の場合は例外的にb // x
に0
の場合の1個を足します。
ABC-049
A - 居合を終え、青い絵を覆う
母音の配列を用意してその中に入力文字があるかチェックしています。
B - たてなが
入力されたデータを2回ずつ出力するだけです。
ABC-050
A - Addition and Subtraction Easy
入力された演算子(+
、-
)によってb
の正負を決め、その上でa
とb
を足し合わせています。
B - Contest with Drinks Easy
ドリンクごとのデータを元に所用時間t
の合計から短縮できる時間(負数)を足して調整しています。
今考えるとadjust
関数の計算を逆にして調整する時に減算した方がわかりやすかったかもしれませんね。
拙文失礼いたしました。