2
0

0.はじめに

 最近調子を落としているので挽回したいところでしたが
結果はC問題で大ブレーキがかかり、まぁなんとかACできましたが
結果3問解けただけで、レートも-18の880となりました・・・。
入茶が見えてきてしまった・・・。

1.A - Leftrightarrow

 1問目からなかなか歯ごたえのある問題。
まぁ単純に実装しました。
【考え方】
 ・状態遷移を記録する変数chk(初期値0)を用意する。
・先頭から文字列を見ていき、文字が<かつ、chkが0の時chkを1にする
 <かつ、chkが0以外の時chkを9にする
・文字が=かつ、chkが1か2の時chkを2にする
 =かつ、chkが1と2以外の時chkを9にする
・文字が>かつ、chkが2の時chkを3にする
 >かつ、chkが3以外の時chkを9にする
・文字列を見終わった後、chkが3ならYesそれ以外ならNoを出力

 https://atcoder.jp/contests/abc345/submissions/51282024

2.B - Integer Division Returns

 打って変わってB問題にしては簡単・・・。かと思いつつ
ちょっと工夫の必要な問題。
まぁ、例題が罠ケースを網羅してたので罠にかからずに済みました。
言語によっては実装方法変わるんだろうな・・・。

Xが10で割り切れる場合は、Xを10で割った(//)値
割り切れない場合はその値に1を加算した値を出力

実装はXが正か負かで分けてましたが、今見直すとどちらのケースも同じ式に
なってました・・・。

 https://atcoder.jp/contests/abc345/submissions/51289448

3.C - One Time Swap

 普通に考えたら、TLEになる問題。
まぁ、交換すると考えると、自分と違う文字がどれだけあるかを
保持して、それぞれと組み替えた分を合計して出力でAC!
と思いきや、結構のエラーとなる。
となって嵌りましたが、例題2のようなケースの時、横着して
上のやり方で0になったら1を出力。というような適当な
実装をしていたせいで、同一文字が2個ある場合はそれを入れ替えて
元の文字列と同じになるパターンとして、1を加算しなければ
いけなかったという点が漏れてました。
 実装時の問題を突き詰めずにいたために失敗してしまうという
防げたミスが悔やまれます。

 https://atcoder.jp/contests/abc345/submissions/51332263

以上

2
0
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
2
0