れとろのメモ置場

とあるSEのメモ置場

AtCoder Beginner Contest 245

AtCoder Beginner Contest 245に参加しました。

結果

A,B,Cの3問正解でした。 今日は疲れていたのか頭の回転がすごく鈍かった。 コンテスト中に全然頭が回らないと自覚できるくらいには酷かった。

A - Good morning

2人分の起床時間をもとにどっちが早起きかを答える問題。
時を比較して同じだったら分を比較すれば良い。

ちょっと変わった解き方としては、分割して与えられる時と分を先頭0埋めの2桁の文字列にした上で結合すると文字列的に時分になるのでそこから大小を比較してより小さい方を答えれば良い。
解けはするけど愚直に時と分をそれぞれ比較したほうが楽そう。

B - Mex

Aに含まれない最小の整数を答える問題。
Aは0~2000とそれほど大きくないのでサイズが2001のboolの配列を用意してAに含まれるインデックスのものはtrueにする等で区別できるようにしつつ0から順番にAに含まれない整数を探していけばいい。

C - Choose Elements

結論から言うとDPで解く問題。
深さ優先探索とかでも解けはするけど数列の要素数が大きすぎるのでTLEになる。

改めて考えると素直にDPで解けばよかったのに、深さ優先で解けそうと思って深さ優先探索を書こうとしてみたり、 深さ優先なら再帰を使って書こうかな、それともスタック使って書こうかなと考えたりとそこそこ迷走してた。 いざ深さ優先探索でコードを書くにしても普段なら特に悩まずスラスラ書けるのに、今日はどう書こうかなとちょっと悩んでいてかなり頭の回転が鈍いなあと自覚した。

最終的にはDPで書いて問題なくACした。