[백준 1264] 모음의 개수 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
여러 줄의 문장이 입력으로 주어지는 상황에서, 각 줄(최대 길이 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;
}