새소식

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

[C++][백준] - 가장 많은 글자(1371번)

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

1371번: 가장 많은 글자

첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이

www.acmicpc.net

🔔 문제 : 

최대 50개 줄, 최대 50개의 글자와 함께, 공백과 알파벳 소문자로 이루어진 문장이 입력으로 주어집니다.

 

여기서 가장 많이 쓰인 알파벳소문자를 공백없이 출력하는 문제입니다.

이때, 여러 개일 경우 알파벳 순으로 앞서는 것부터 모두 출력합니다.


🔔 Kick Point :

char의 문자는 ascii code 와도 연관되어 있다는 것을 염두에 두고, operators을 이용할 수 있음을 꼭 기억해주면 좋겠습니다.

 

이를 통해 if 조건문 중 'a' <= c && c <= 'z' 를 이용할 수 있었습니다

 

ASCII code

 

 

추가적으로 기본적으로 cout 라이브러리는 10진수를 default로 하지만, 8진수, 16진수로 변경하고 싶을때는

std::oct ->8진수 std::dec->10진수 std::hex -> 16진수 를 이용하면 됩니다. 

 


🔔 Code :

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

int main() {
	
	int alpha[26] = { 0, };

	while (true) {
		char c = 0;
		cin >> c;
		if (c == 0) break;
		if ('a' <= c && c <= 'z') alpha[c - 'a']++;
	}

	int bigest = 0;
	for (int i = 0; i < 26; i++) {
		if (bigest < alpha[i]) bigest = alpha[i];
	}

	for (int i = 0; i < 26; i++) {
		if (alpha[i] == bigest) cout << char('a'+ i);
	}

}

 

Contents

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

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