[문제보기]
4358. 생태학
4358번: 생태학
프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어
www.acmicpc.net
[풀이과정]
TRIE 알고리즘을 이용하여 문제를 풀려고 했지만, 질문 게시판을 참고하여 pair<int, int>와 sort()를 사용하여
더 쉽게 구현하였다.
https://www.acmicpc.net/board/view/43824
[소스코드]
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<string> v;
vector<pair<string, float>> w;
int main(){
string s;
while(1){
getline(cin, s, '\n');
if(cin.eof() == true) break;
v.push_back(s);
}
sort(v.begin(), v.end());
w.push_back({v[0], 1});
for(int i=1; i<v.size(); i++){
if(v[i] != v[i-1]){
w.push_back({v[i], 1});
}
else
w.back().second++;
}
for(int i=0; i<w.size(); i++){
w[i].second = w[i].second/v.size() * 100;
cout << w[i].first << " ";
printf("%.4f\n", w[i].second);
}
return 0;
}
[해결과정 중 실수한 부분]
'알고리즘 스터디 > Beakjoon' 카테고리의 다른 글
| [백준 9372][C++] 상근이의 여행 (Silver 3) (0) | 2020.10.06 |
|---|---|
| [백준 15681][C++] 트리와 쿼리 (Gold 5) (0) | 2020.10.06 |
| [백준 1012][C++] 유기농 배추 (Silver 2) (0) | 2020.10.06 |
| [백준 3584][C++] 가장 가까운 공통 조상 (Gold 4) (0) | 2020.10.06 |
| [백준 4803][C++] 트리 (Gold 4) (0) | 2020.10.06 |