코딩로그
[백준/BOJ/C++] 1157번 단어 공부 본문
[문제]
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
[입력]
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 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);
}
}
[결과 화면]
'YJ > C++' 카테고리의 다른 글
[백준/BOJ/C++] 1076번 저항 (0) | 2021.10.21 |
---|---|
[백준/BOJ/C++] 10162번 전자레인지 (0) | 2021.10.21 |
[백준/BOJ/C++] 2753번 윤년 (0) | 2021.10.21 |
[백준/BOJ/C++] 1085번 직사각형에서 탈출 (0) | 2021.10.21 |
[백준/BOJ/C++] 3009번 네 번째 점 (0) | 2021.10.21 |