Notice
Recent Posts
Recent Comments
Link
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

코딩로그

[백준/BOJ/C++] 1157번 단어 공부 본문

YJ/C++

[백준/BOJ/C++] 1157번 단어 공부

Team DAON 2021. 10. 21. 16:40

[문제]

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

 

[입력]

첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.

 

[출력]

첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

 

[Source Code]

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main() {
	int arr[26], max = 0, count = 0;
	for(int i = 0; i < 26; i++){
		arr[i] = 0;
	}

	string s;
	cin >> s;

	for(int i = 0; i < s.length(); i++){
		int num = (int)s[i];

		if(num < 97)
			num -= 65;
		else
			num -= 97;

		arr[num]++;
	}

	for(int i = 0; i < 26; i++){
		if(count < arr[i]){
			count = arr[i];
			max = i;
		}
	}
	
	sort(arr, arr+26);

	if(count == arr[24])
		cout << "?";
	else{
		cout << char(max+65);
	}
}

[결과 화면]