문제 링크: https://www.acmicpc.net/problem/4358
map을 사용하면 됩니다 (<이름, 나온 횟수>)
나무 이름 사이 공백이 있을 수 있으니 getline으로 한줄씩 입력받고, 나무 이름으로 키를 찾아서 나무의 count를 1 올려주면 됩니다
출력할 때 나무 이름 사전순으로 출력해야 되고, 백분율 소수점 4자리까지 출력해야 하는 점을 주의하세요
#include <bits/stdc++.h>
using namespace std;
map<string, int> m;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
string s;
int cnt=0;
while (getline(cin, s)) {
if (m.find(s) == m.end()) {
m[s] = 1;
}
else {
++m[s];
}
++cnt;
}
cout << fixed;
cout.precision(4);
for (auto it = m.begin(); it != m.end(); ++it) {
cout << it->first << ' ' << it->second*100 / (double)cnt << '\n';
}
return 0;
}
반응형
'Online Judge > 백준' 카테고리의 다른 글
[백준][C++] 10216: Count Circle Groups (0) | 2020.06.01 |
---|---|
[백준][C++] 17197: Fence Planning (0) | 2020.05.31 |
[백준][C++] 12790: Mini Fantasy War (0) | 2020.05.29 |
[백준][C++] 17352: 여러분의 다리가 되어드리겠습니다! (0) | 2020.05.28 |
[백준][C++] 1976: 여행 가자 (0) | 2020.05.27 |