けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 298 A - Job Interview (7Q, 灰色, 100 点)

文字列を for 文で調べる問題

問題概要

文字 o, x, - からなる長さ  N の文字列  S が与えられる。次の条件を満たすかどうかを判定せよ。

  • 文字 o を少なくとも 1 つ含む
  • 文字 x を含まない

制約

  •  1 \le N \le 100

考えたこと

文字列  S の各文字を for 文で走査することにより、次の値を求めよう!


  • num_ryo:文字列  S に含まれる文字 o の個数
  • num_fuka:文字列  S に含まれる文字 x の個数

そうすれば、次のように判定できる。

  • num_ryo >= 1 かつ num_fuka == 0 のとき:"Yes"
  • そうでないとき:"No"

コード

#include <bits/stdc++.h>
using namespace std;
const long long INF = 1LL<<55;

int main() {
    int N;
    string S;
    cin >> N >> S;

    int num_ryo = 0, num_fuka = 0;
    for (int i = 0; i < N; i++) {
        if (S[i] == 'o') num_ryo++;
        else if (S[i] == 'x') num_fuka++;
    }
    if (num_ryo >= 1 && num_fuka == 0) cout << "Yes" << endl;
    else cout << "No" << endl;
}