작성일 :

문제 링크

1264번 - 모음의 개수

설명

여러 줄의 문장이 입력으로 주어지는 상황에서, 각 줄(최대 길이 255)과 종료 표시 #이 주어질 때, 각 문장에 포함된 모음(a, e, i, o, u의 대소문자)의 개수를 세어 출력하는 문제입니다.

#만 있는 줄이 나오면 입력이 종료되며, 그 이전 줄들에 대해서만 모음의 개수를 출력합니다.


접근법

각 줄을 입력받으면서 종료 표시인 #이 나올 때까지 처리합니다.

각 문장의 모든 문자를 확인하며, 그 문자가 a, e, i, o, u 중 하나인지 대소문자 구분 없이 비교하여 개수를 세어 출력하면 됩니다.



Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;

namespace Solution {
  class Program {
    static bool IsVowel(char c) {
      return "aeiouAEIOU".Contains(c);
    }

    static void Main(string[] args) {
      while (true) {
        var line = Console.ReadLine();
        if (line == null || line.StartsWith('#')) break;

        var cnt = 0;
        foreach (var ch in line)
          if (IsVowel(ch)) cnt++;
        Console.WriteLine(cnt);
      }
    }
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>
using namespace std;

bool isVowel(char c) {
  return string("aeiouAEIOU").find(c) != string::npos;
}

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  string line;
  while (getline(cin, line)) {
    if (!line.empty() && line[0] == '#') break;
    int cnt = 0;
    for (char ch : line)
      if (isVowel(ch)) cnt++;
    cout << cnt << "\n";
  }
  
  return 0;
}