차지하는 비율 = 특정 종의 수 / 전체 종의 수 * 100
특정 종은 문자열로 구분되기에 해시를 사용해 줘야 한다.
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
cout << fixed;
cout.precision(4);
int cnt = 0;
string wood;
map<string, float> m;
while (getline(cin, wood))
{
++m[wood];
++cnt;
}
for (auto node : m)
cout << node.first << " " << (node.second / cnt * 100) << "\n";
return 0;
}
map의 경우 자동 정렬되기에 그대로 출력해 주면 된다.
공백을 포함하는 문자열이라는 점을 유의해야 한다.