はじめに
こんにちは! この記事で初投稿になる まさる です。
ATCoderめちゃくそ強い人になりたいけど、覚えたことを忘れることが多いので備忘録としてあげていく事にしました。
問題
しょうもないミスで2回ほどWAをぶちかましてしまいました…
https://atcoder.jp/contests/abc150/tasks/abc150_b
どこでミスったの?
'''
#include
using namespace std;
int main()
{
int N = 0;
string s;
cin >> N >> s;
int id = 0;
int sum = 0;
for(int i = 0; i < N; i++)
{
switch (id)
{
case 0:
if (s[i] == 'A') id = 1;
else id = 0;
break;
case 1:
if (s[i] == 'B') id = 2;
else if (s[i] == 'A') id = 1; // ここ書き忘れた!!
else id = 0;
break;
case 2:
if (s[i] == 'C')
{
sum++;
id = 0;
}
else if (s[i] == 'A') id = 1;
else id = 0; // ここ書き忘れた!!
break;
default:
id = 0;
break;
}
}
cout << sum;
}
'''
( コードの汚さは許してください何でもします... )
ABCが連続で入力されているのを読み取るのに、idという変数を用いています。
switch文でidの動きを監視していたのですが、修正前のコードだと、BやCの次にAが来ると、Aが来たのにカウントを始めていませんでした、、
これに気付かず愚かな私は2回もWAをかましました。
さいごに
ATCoder初心者なため、テストケースが開示されていることを今日初めて知りました。
まだまだ解いた問題数が少ないので、まずは量こなしていこうと思います。