0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

0.はじめに
 C問題が一目見ただけで時間かかりそうだったので、Dを見ると
 行けそうだったので先に回答。その後Cに取り掛かるも40分では
 解ききれませんでした。
 それでもABDクリアでレートが14upしました。

1.A - Weekly Records
 最初、平均を求める問題かと思いましたが単純に
 合計を求める問題だったんで
 回答用のリストを作って、7個分足したらリストに
 追加していって最後に出力でACでした。

 https://atcoder.jp/contests/abc307/submissions/42895027

2.B - racecar
 まず文字列の逆を求める方法をググる。
 Sを逆からにするには、S[::-1]でよいと分かったので
 S==S[::-1]が成り立てば、回文であると判断できます。
 
 あとは、リストをすべて順につなげていって
 回文が成り立てば、Yesを出力して終了
 すべてチェックして成り立たなければNoを出力して終了

 注意点は、すべての組み合わせをチェックするときに
 リスト内でおなじ(位置の)文字列の組み合わせ時はチェック対象から外す
 点くらいでした。

 https://atcoder.jp/contests/abc307/submissions/42902461

3.C - Ideal Sheet
 考え方としては、
  1)Cシートを表す2重リストを作成し、Xの黒マスに1を、それ以外に0をセット
  2-1)Aシートの左上の黒マスとXシートの左上の黒マス合わせて、
    Aシートのほかの黒マスがXシートの黒マスと一致するかチェック
    一致したら、Cシートリストの一致した座標を2に書き換え
    一致しなかったら3)へ
  2-2)Bシートの左上をCシートリストの1or2マスに重ねて
      他の黒マスをCシートリストの1or2と一致するかを順にチェック
      一致したら、リストのマスを2に変更
      一致しない時(0の時)3)へ
   2-2-1)Cシートリストに1が残ってたら
         Bシートの左上を次のCシートリストの1or2マスに重ねてチェック
        残ってなかったらYesを出力して終了
  3)2のチェックで終了しなかったら、BとAを逆にしてチェック
  4)3)のチェックでも終了しなかったらNoを出力して終了

 と、イメージはできてましたが、ちょっと実装しきれませんでした。

4.D - Mismatched Parentheses
 なんとなく、似た問題を見た気がしつつ取り組む。

 考え方
  1)デキューに、左カッコ毎の文字列を格納していく
  2)右かっこが出てきたらデキューをpopしてかっこの組み合わせを削除
  3)最後にデキューに残った文字列を先頭からつなげて出力
 ポイント
  ・1個目の文字列は(以外が先頭の事もあり
  ・右かっこの数を覚えて置き、対応する右かっこがないのに
   dequeをpopすることが無いようにする。

 dequeさえ使えれば、簡単になる問題だなと思いました。

 https://atcoder.jp/contests/abc307/submissions/42917633

以上

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?