https://www.acmicpc.net/problem/4358
#include <bits/stdc++.h>
using namespace std;
bool sorter(const pair<string, int> &a, const pair<string, int> &b) {
return a.second > b.second;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL);
string s;
int tot;
map<string, int> m;
while (getline(cin, s)) {
m[s]++;
tot++;
}
vector<pair<string, int>> v(m.begin(), m.end());
cout << fixed << setprecision(4);
for (const auto &p : v){
cout << p.first << " " << static_cast<double>(p.second) * 100 / tot << "\n";
}
}
static_cast<double>
static_cast : 우리가 흔히 생각하는, 언어적 차원에서 지원하는 일반적인 타입 변환
const_cast : 객체의 상수성(const) 를 없애는 타입 변환. 쉽게 말해 const int 가 int 로 바뀐다.
dynamic_cast : 파생 클래스 사이에서의 다운 캐스팅 (→ 정확한 의미는 나중에 다시 배울 것입니다)
reinterpret_cast : 위험을 감수하고 하는 캐스팅으로 서로 관련이 없는 포인터들 사이의 캐스팅 등
https://modoocode.com/204
str에 공백 전까지 한 줄 담음
소수점 이하 4자리 고정
유효숫자를 4자리로
map 순서대로 출력하고자할 때 벡터화.
컨테이너 순회 시 const &를 적용하여 복사 방지