새소식

💻 Programming (프로그래밍)/C++ | 백준

[C++][백준] - 도비의 영어공부 (2386번)

  • -
https://www.acmicpc.net/problem/2386
 

2386번: 도비의 영어 공부

출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다.

www.acmicpc.net

🔔 문제 : 

입력은 몇 개의 줄들로 이루어집니다.

각 줄에는 하나의 소문자와 영어 문장이 공백으로 구분되어 주어집니다.

각 문장은 길이가 1에서 250이며 입력의 마지막은 #입니다.

 

출력상에서 각 줄 앞의 소문자가 뒤의 문장에 몇 번 나온지를 출력하는 문제입니다.



🔔 Kick Point :

대문자 소문자 상관 없이 확인해야하는 문제이기에

tolower() 함수를 사용 하였습니다.

 

int tolower(int c);

아마도 입력값으로 숫자가 들어가 변환시켜줍니다.

 

찾아보니 각 대문자와 소문자의 사이에는 32의 정수차이가 있기 때문에 쉽게 치환해주는 것 같습니다.

 

A = 65 , a = 97

 


🔔 Code :

#include <iostream>
#include <string>
using namespace std;

int main() {

	string str;
	char c;

	while (true) {
		cin >> c;
		getline(cin, str);
		
		if (c == '#') break;


		int cnt = 0;
		for (int i = 0; i < str.length(); i++) {
			str[i] = tolower(str[i]);
			if (str[i] == c) ++cnt;
		}

		cout << c << " " << cnt << '\n';

	}
}

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.