はじめに

今月の目標で AtCoder の B 問題過去問全部埋めるのを含めていたけど終わった。

A 問題同様比較的簡単な問題が多かったけど系統が違ったので学びがあった

計算時間に敏感になった

入力が数列の場合とかに入力の大きさを見るようになった。

これぐらいの大きさなら余裕だな。とか、一回全部データ舐めるだけで終わらせないとな。とか、なんか工夫が必要だなとかわかるようになった。

工夫が必要だと分かれば、計算量を減らすための工夫を最初から考えられるので結構すぐ解けることが多かった。

あとは、基本的に Seq を使って遅延評価するようにした。

文字列処理系の問題に慣れてきた

逆に B か C くらいでしか出ないと思うけど、文字列の入力をコネコネする問題に慣れてきた。

例えば以下とか。

https://atcoder.jp/contests/abc075/tasks/abc075_b

行と列と文字のタプルを作って、それを groupBy したりしながら普通のリスト処理をしていけば何とか解ける。

こういうときに、基本的に immutable で縛っているのが少し面倒だけど、ちゃんと書けるし時間内に終わるので、こういう書き方は引き続き続けたい

F# の API の知識が増えた

わりとこれがもともとの目的だったのだけれど、どうしても list とかだけで解けてたので限られたものしか使ってなかった。

ただ、 map とか使わないと時間的に厳しいことが増えてきたので、API を覚えてきた。

スニペットが増えてきた

必要なものをスニペットにし続けている。

特に計算結果の剰余をとる系は計算過程でも剰余をとる必要があるので、そのための関数などをあらかじめ準備するようにした。

最後に

C の中でも簡単も問題から解いていこうと思っている。

しばらくは C までを安定して早く解けるようにして、茶色を目指していこうと思う。

sterashima78

Web Frontend Engineer


© 2020 - 2021 — Terashima Shin