1일1알

백준 4358번 생태학 C++ 본문

알고리즘

백준 4358번 생태학 C++

영춘권의달인 2021. 11. 10. 13:11

출처 : https://www.acmicpc.net/problem/4358

 

백준에서는 입력이 파일로 들어오기 때문에 EOF를 읽게 되면 입력이 종료된다고 한다.

그래서 while (getline(cin, str))을 사용하면 된다.

맵 자료구조는 자동으로 정렬이 되기 때문에 입력받은 정보를 map<string, int>를 이용해 value값을 증가시켜주기만 하면 된다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>

using namespace std;
typedef long long ll;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	map<string, int> m;
	string str;
	int cnt = 0;
	while (getline(cin, str)) {
		cnt++;
		m[str]++;
	}
	cout << fixed;
	cout.precision(4);
	for (auto a : m) {
		cout << a.first << " " << (a.second / float(cnt)) * 100 << "\n";
	}
};

 

'알고리즘' 카테고리의 다른 글

백준 2564번 경비원 C++  (0) 2021.11.12
백준 2589번 보물섬 C++  (0) 2021.11.11
백준 11497 통나무 건너뛰기 C++  (0) 2021.11.09
백준 2841번 외계인의 기타 연주 C++  (0) 2021.11.08
백준 2493번 탑 C++  (0) 2021.11.07