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

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

JOI 一次予選 2024 (第 2 回) C - 画数数え (8Q, 難易度 2)

for 文の練習!

問題概要

文字 j は 2 画、o は 1 画、i は 2 画である。

与えられた文字列  S が合計で何画であるかを求めよ。

解法

for 文を用いよう。for 文のループカウンタ変数を i として、文字 S[i] について、次のように処理すればよいでしょう。

  • S[i] == 'j' のとき:答えに 2 を足す
  • S[i] == 'o' のとき:答えに 1 を足す
  • S[i] == 'i' のとき:答えに 2 を足す

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N;
    string S;
    cin >> N >> S;
    int res = 0;
    for (int i = 0; i < N; ++i) {
        if (S[i] == 'j') res += 2;
        else if (S[i] == 'o') res += 1;
        else res += 2;
    }
    cout << res << endl;
}