[백준/BOJ] 백준 4358번 : 생태학
2021. 2. 7. 22:55ㆍ알고리즘 문제풀이
(cin.eof())를 통해 종료 조건을 확인하는 것에 주의하였고, map<string, int> tree를 통해 나무의 정보(나무 이름, 개수)를 저장하여 문제를 해결했다.
코드
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
using namespace std;
map<string, int> tree;
map<string, int>::iterator it;
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int cnt = 0;
while (1)
{
string input;
getline(cin, input);
if (cin.eof())
break;
cnt++; //총 개수 세기
it = tree.find(input);
if (it == tree.end()) //처음 발견한 나무 일때
{
tree.insert(make_pair(input, 1));
}
else //이미 저장했던 나무일때
{
(*it).second++;
}
}
for (it = tree.begin(); it != tree.end(); it++)
{
double value = (double)(*it).second * 100 / cnt;
cout << fixed;
cout.precision(4);
cout << (*it).first << " " << value << "\n";
}
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 1948번 : 임계경로 (0) | 2021.02.07 |
---|---|
[백준/BOJ] 백준 4354번 : 문자열 제곱 (0) | 2021.02.07 |
[백준/BOJ] 백준 9370번 : 미확인 도착지 (0) | 2021.02.07 |
[백준/BOJ] 백준 7453번 : 합이 0인 네 정수 (0) | 2021.02.07 |
[백준/BOJ] 백준 3665번 : 최종 순위 (0) | 2021.02.07 |