어흥
[백준 4358] 생태학 (C++) 본문
728x90
반응형
문제 링크: www.acmicpc.net/problem/4358
1. 주의할 점
- EOF를 입력받을 때까지 입력받도록 한다
- 소숫점 아래 4번째 숫자까지만 받는다
2. 구현
- while(getline(cin, str)) 을 통해 EOF를 입력받기 전까지 종의 이름을 입력 받는다
- Map을 통해 각 종이 몇 번 입력 받았는지 계산한다
- 각 종이 입력 받은 백분율을 소수점 4째 자리까지 출력하도록 한다
#include <iostream>
#include <string>
#include <map>
using namespace std;
map<string, float> m;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
string str;
float cnt = 0;
while (getline(cin, str)) {
cnt++;
if (m.find(str) != m.end()) {
m[str] += 1;
}
else
m[str] = 1;
}
cout << fixed;
cout.precision(4);
for (auto it = m.begin(); it != m.end(); it++) {
float val = (it->second / cnt) * 100;
cout << it->first << " ";
cout << val << endl;
}
return 0;
}
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 1495] 기타리스트 (C++) (0) | 2020.09.28 |
---|---|
[백준 2886] 자리 전쟁 (C++) (0) | 2020.09.22 |
[백준 16947] 서울 지하철 2호선 (C++) (0) | 2020.09.15 |
[백준 2143] 두 배열의 합 (C++) (0) | 2020.09.08 |
[백준 13422] 도둑 (C++) (0) | 2020.09.08 |
Comments