본문 바로가기

🖥️ 오늘의 백준

백준 1264번 : 모음의 개수 [C++]

https://www.acmicpc.net/problem/1264

 

1264번: 모음의 개수

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 영어 대소문자, ',', '.', '!', '?', 공백으로 이루어진 문장이 주어진다. 각 줄은 최대 255글자로 이루어져 있다. 입력의 끝에는 한 줄

www.acmicpc.net

 

 

코드

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

int main() {
	string a;
	int count = 0;

	while(true) {
		getline(cin, a);

		if (a != "#") {
			for (int i = 0; i < a.length(); i++) {
				if (tolower(a[i]) == 'a' || tolower(a[i]) == 'e' || tolower(a[i]) == 'i' || tolower(a[i]) == 'o' || tolower(a[i]) == 'u') {
					count++;
				}
			}

			cout << count <<endl;
			count = 0;
		}
		else {
			break;
		}
		
	}
	

	return 0;
}

 

풀이

포인트 1 

한줄 입력 받는 방법 (아래 게시글 참고)

https://hihajin.tistory.com/64

 

[C++] 한 줄 입력 받기, 공백 포함 입력 받기 | getline()

c++에서 cin을 하게 되면 ' '이나 \n를 입력하면 문자열 입력이 끝나버린다. 공백을 포함한 문자열을 입력하고 싶을 땐 getline을 사용하면 된다! #include #include using namespace std; int main() { string a; getline(

hihajin.tistory.com

+ 추가로 string은 index 접근이 가능하다는 점

 

포인트 2

while문으로 "#"으로 종료될 때까지 반복해주기

if문을 사용하여 입력받은 문자가  #가 아닐때는 실행 #일때는 break로 종료

 

포인트 3

tolower()나 toupper()을 이용해서 대문자, 소문자 중 하나로 변경하여 모음의 개수를 세주어야한다.

  • tolower() : 문자 소문자로 변경하기
  • toupper() : 문자 대문자로 변경하기

포인트 4

count 초기화 해주기

(은근 까먹는 실수를 많이 하지만 가장 중요한 것!)