C++도 뭔가 파이썬처럼 하게되는 거 같음; 파이썬의 장점이 입력값을 유연하게 대처할 수 있다는 건데 그 맛을 봐버려서 array대신 vector위주로 쓰고 char 대신 string을 많이 쓰는데 이렇게 하니까 코드가 존나 더러워지는 거 같음 시간도 오래걸리고

#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
#include <set>
#include <vector>

int main() {
    std::string str;
    getline(std::cin, str);
    std::string str1(str.size(), ' ');
    std::set<char> sett;
    std::vector<int> str_num;
    std::transform(str.begin(), str.end(), str1.begin(), [](unsigned char c){ return std::toupper(c);});
   
    for (char c : str1) {
        sett.insert(c);
    }

    for (char c : sett) {
        str_num.push_back(std::count(str1.begin(), str1.end(), c));
    }

    int max_num = *max_element(str_num.begin(), str_num.end());

    if (int (std::count(str_num.begin(), str_num.end(), max_num)) != 1) {
        std::cout << "?";
    }

    else {
        int max_ind = max_element(str_num.begin(), str_num.end()) - str_num.begin();
        auto answer = std::next(sett.begin(), max_ind);
        std::cout << *answer;
    }
    return 0;
}

실제 내가 짠 코드(문자열을 입력받아 가장 많은 빈도로 사용된 문자를 출력하는 프로그램)인데 보기만 해도 개더러움. 다른 사람들 코드 보면 array 잘 이용해서 문제 풀던데 나처럼 하면 안되는 거 같음... 파이썬에서 하던 식으로 하는 게 문제가 되려나 확실히?