728x90
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string word;
cin >> word;
int point;
int max = 0;
int cnt = 0;
int arr[26] = { 0 };
transform(word.begin(), word.end(), word.begin(), (int(*)(int))toupper);
for (int i = 0; i < word.size(); i++) {
arr[word[i] - 'A']++;
}
for (int i = 0; i < 26; i++) {
if (arr[i] > max) {
max = arr[i];
cnt = 0;
point = i;
}
if (max == arr[i])
cnt++;
}
if (cnt > 1)
cout << '?' << '\n';
else
cout << (char)(point + 'A');
}
다시 풀어도 어렵다 몇 번은 더 풀어야 할 것 같다.
생각조차 안 나는걸..
대신 transform 사용법은 확실히 익힌 것 같다.
728x90
'알고리즘 연습' 카테고리의 다른 글
C++ 2292 벌집 (0) | 2021.09.25 |
---|---|
C++ 2908 상수 (0) | 2021.09.24 |
C++ 1152 단어의 개수 (0) | 2021.09.24 |
C++ 2675 문자열 반복 (0) | 2021.09.24 |
C++ 10809 알파벳 찾기 (0) | 2021.09.24 |