東京海上日動プログラミングコンテスト2023(AtCoder Beginner Contest 299)に参加しました。
結果
A,B,Cの3問正解でした。
ふと質問タブを見るとunratedとあって急にやる気がなくなっちゃった...
A - Treasure Chest
.|*からなる文字列が与えられるので|と|の間に*が含まれるかどうかを答える問題。
文字列を順番に見ていって1個目の|の後、2個目の|で出てくるまでに*が出てくるかどうかを確認して答えればよいと思う。
B - Trick Taking
色と値を持つカードが順番に場に出るので、条件を満たすのは何番目かを答える問題。
条件が
- 色Tが出ていた場合は色Tのうち値が最大のカードを出した人
- 色Tが出ていない場合は1番最初に出たカードと同じ色のうち値最大のカードを出した人
カードの枚数的に線形探索しても間に合うのでループ処理で1枚目のカードから順番に見ていく。
はじめは色Tが出ていない想定で1枚目と同じ色が出た場合は値を比較して最大値を管理しつつ、それを出したのが何番目なのかも管理しておく。
色Tが出た場合は値と、何番目かを控えて、以降は色Tが出てきた場合だけ値と何番目に出されたかを管理する。
最後に管理していた何番目なのかを出力する。
C - Dango
文字列として-とoを並べて団子に見立てて、最大何個の団子が連なっているのかを答える問題。 oを団子で-を串に見立てていて面白い。
解き方は2通りあるかなと思う。
1つは串の位置を記録して、串と串の間隔が最大いくつになっているかを答える。
もう1つはoが最大何個連続しているかを数えて答える。(全部串の場合や全部団子の場合に注意して答える)
文字列の処理ができればそれほど難しくはないと思う。 A問題で文字列の処理をやっているのでA問題を解けるなら+αできていればこの問題も解けるかなあ