LoginSignup
1
0

AtCoder Beginner Contest 150 B

Posted at

はじめに

こんにちは! この記事で初投稿になる まさる です。
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初心者なため、テストケースが開示されていることを今日初めて知りました。
まだまだ解いた問題数が少ないので、まずは量こなしていこうと思います。

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