AtCoder問題の要点一行まとめ(ARC編)

ARC編です。

aoki-shiraki21.hatenablog.com

ARC1

A - センター採点

要素の個数が知りたいので、それぞれ文字列としてcountをかける

ARC2

A - うるう年

条件が複数あるので、制約の厳しいものから先にチェックする

ARC4

A - 2点間距離の最大値

調べる点の数が少ないので、全部の点の組み合わせを試す

ARC5

A - 大好き高橋君

ピリオドだけが例外なので、先に消してから単語ごとに処理をする

ARC7

A - 帰ってきた器物損壊!高橋君

対象の文字すべての置換なので、replaceでまとめて変える

ARC8

A - たこ焼き買えるかな?

商とあまり両方とも利用したいので、divmodを活用する

ARC9

A - 元気にお使い!高橋君

全て同じ消費税なので、先に本体価格の合計を求めて最後に税の処理をする

ARC10

A - 名刺交換

1日の中で先に枚数チェックがあるので、繰り返しの処理の中の最初に入れる

ARC12

A - 週末

曜日と日数対応の辞書を書くのがめんどくさいので、リストにしてインデクスで対応させる

B - アキレスと亀

1回あたりに亀が進むのは人間との速度比の分だけなので、試行ごとに速度比分距離が縮む(もしくは開く)

ARC15

A - Celsius と Fahrenheit

計算式が与えられているので、当てはめて処理する

ARC16

A - クイズゲーム

正解以外ならどんな値でも良いので、1つに値を固定して考える

ARC18

A - BMI

単位を揃えるために、cmをmにしてから計算する

ARC20

A - 石を滑らせるゲーム

原点からの距離が論点なので、絶対値をとって比較する

ARC21

A - DEAD END

例外なく4方向の判定がしたいので、盤面の外側にダミーを入れて4方向全て確認する

ARC23

A - 経過日数

ガウス記号がある割り算なので、整数除算で式を表現する

ARC26

A - ダイナミックなポーズ

b<aが確定しているので、最小化のためには小さいbから貪欲に使う

ARC27

A - 門限

単位が時と分二つあるので、現在の分をどちらに入れて処理するかを決めて計算する

ARC31

A - 名前

文字列を裏返したいので、[::-1]を活用する

ARC33

A - 隠れた言葉

n文字は1つn-1文字は2つと数えられるので、1~nまでの総和を出す

ARC35

A - 高橋くんと回文

の時は相手がなんでもよいので、反転させた文字列と比較してどちらかがか同じならokとする

ARC36

A - ぐっすり

3日間の合計が知りたいので、3日目から以前3日間の合計を取っていく

ARC38

A - カードと兄妹

最大値からとっていくのが最善手なので、ソートして大きい方から1つ飛ばしにとる

ARC40

A - 床塗り

フィールド全体の文字の個数が知りたいので、1つの文字列に連結して処理をする

ARC41

A - コインの反転

できるだけ表はそのままにしたいので、裏から順番に裏返す

ARC47

A - タブの開きすぎ

タブの数に応じて対応が変わるので、タブの数を変数保存しつつシミュレーションする

ARC48

A - 階段の下

1の一つ下が-1なので、通常の整数計算にならすために負の値は+1する

ARC49

A - "強調"

元の文字列を変更するとインデクスがずれるので、別で解答文字列を作りそこに格納していく

ARC50

A - 大文字と小文字

大文字小文字を揃えたいのでlowerで調整する

ARC55

A - 数え上げ

同じ数を何度もかけるので、累乗を使う