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 잘 이용해서 문제 풀던데 나처럼 하면 안되는 거 같음... 파이썬에서 하던 식으로 하는 게 문제가 되려나 확실히?
댓글 0