AtCoder Regular Contest 016 B - 音楽ゲーム
問題
N行の譜面が与えられます。譜面は9個の文字列です。xならばボタンを押す。oならばボタンを押し続けます。
何回ボタンを押したでしょうか?
制約
考えたこと
1行ずつ確認します。xであれば数えます。oの場合、前の行がo以外ならば数えます。1行目のoは前の行がないため、処理をわけます。
コード
#define _GIBCXX_DEBUG #include <bits/stdc++.h> using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) #define all(v) v.begin(), v.end() using namespace std; using ll = long long; int main(void) { int N; cin >> N; vector<string> v(N); rep(i, N) cin >> v[i]; int ans = 0; rep(i, N) { rep(j, v[i].size()) { if (v[i][j] == 'x') ++ans; else if (v[i][j] == 'o') { if (i == 0) ++ans; else if (v[i - 1][j] != 'o') ++ans; } } } cout << ans << endl; return 0; }
解説を読んで
とくにありません。