문제 해결/BaekJoon
[백준] [C++] 11319번 Count Me In
WSLim_97
2022. 11. 17. 22:28
반응형
https://www.acmicpc.net/problem/11319
11319번: Count Me In
For each sentence, output the number of consonants and vowels on a line, separated by space.
www.acmicpc.net
코드
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
int n;
cin >> n;
getchar();
for (int i = 0; i < n; i++) {
getline(cin, input);
int vow = 0, con = 0;
for (int j = 0; j < input.size(); j++) {
switch(input[j]) {
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
vow = vow + 1;
break;
case ' ':
break;
default:
con = con + 1;
break;
}
}
cout << con << " " << vow << "\n";
}
return 0;
}
풀이
영어 문자열을 입력받아 자음과 모음의 수를 각각 출력하는 문제이다.
string 라이브러리의 getline 함수를 통해 문자열을 공백이 포함되게 입력받을 수 있다.
n번 반복을 위해 cin을 통해 n을 입력받으면 개행 문자인 \n 가 남게 된다. 이때 getline을 만나면 getline 함수는 개행 문자를 만날 때까지 문자를 읽기 때문에 문자를 읽지 못한다.
그래서 getchar 함수를 통해 문자 하나를 버려 개행 문자를 없애주는 것이다.
그 후 string 형으로 입력받아 for문을 통해 하나하나 문자에 접근한다.
switch 문을 통해 모음을 발견하면 vow + 1을 실행하고 공백이면 break를 실행, 그 이외의 문자는 자음 변수인 con + 1을 해준다.
그 후 vow와 con을 출력하면 된다.
반응형