알고리즘 연습

C++ 1157 단어공부

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