ARC編です。
- ARC1
- ARC2
- ARC4
- ARC5
- ARC7
- ARC8
- ARC9
- ARC10
- ARC12
- ARC15
- ARC16
- ARC18
- ARC20
- ARC21
- ARC23
- ARC26
- ARC27
- ARC31
- ARC33
- ARC35
- ARC36
- ARC38
- ARC40
- ARC41
- ARC47
- ARC48
- ARC49
- ARC50
- ARC55
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 - 数え上げ
同じ数を何度もかけるので、累乗を使う