less than 1 minute read

백준 2386번: 도비의 영어 공부

문제:

꿍은 도비의 자유를 위해 영어를 가르치기로 결심했다. 하지만 도비는 바보라 ABC부터 배워야 한다.

그래서 꿍은 영어 문장과 알파벳 하나가 주어지면 그 알파벳이 문장에서 몇 번 나타나는지를 세는 문제들을 내주었다. 하지만 도비는 마법사고 컴공도 마법사다.

여러분은 도비를 위해 문제의 답을 알려주는 프로그램을 만들수 있을것이다!

입력:

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

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

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

풀이:

모든 데이터 인풋을 하나씩 훑으면서 일치하는 character가 있을 때 마다 카운터를 올리면 된다.

코드:

#include <stdio.h>
#include <ctype.h>

using namespace std;

int main(void){
	char character;
	char sentence[251];
	int counter = 0;
	int numofSentence = 0;
	char charAnswer[1000];
	int intAnswer[1000];
	while(character != '#'){
		scanf("%c", &character);
		if(character == '#'){
			break;
		}
		scanf("%[^\n]%*c", &sentence);
		for(int i = 0; i < 251; i++){
			
			if(sentence[i] == NULL){
				break;
			}
			else if(tolower(sentence[i]) == character){
				counter++;
			}
		}
		charAnswer[numofSentence] = character;
		intAnswer[numofSentence] = counter;
		numofSentence++;
		counter = 0;
		
		
	}
	for(int i = 0; i < numofSentence; i++){
		printf("%c %d\n", charAnswer[i], intAnswer[i]);
	}
	
}

Leave a comment