반응형
728x170
우선 Unordered 맵과 Ordered맵에 대한 정말 좋은 구분이라고 생각한다.
Unordered_map으로 만들었다면.. 정렬을 따로 해줘야했을 것이다.
https://www.acmicpc.net/problem/4358
#맞은 풀이
#include<bits/stdc++.h>
using namespace std;
string s;
//int와 int의 연산은 int가 나오므로 float으로 형변환하거나 처음부터 float과 연산
float num;
int main(){
map<string, int> trees;
while(getline(cin, s)){
num++;
//초기 값은 1
if(trees.count(s) == 0){
trees[s]=1;
}
else{
trees[s]++;
}
}
//소수점 자리 고정하는 부분
cout << fixed;
cout.precision(4);
for(auto it = trees.begin(); it != trees.end(); it++ ){
cout << it->first <<" "<< (it->second)* 100 / num << '\n';
}
return 0;
}
위의 주석처럼 3가지를 신경써주어야 한다.
또한 map 도 Iterator로 순회할 수 있기 때문에 ordered_map이라면 차례로 순회하면 key값이 사전순대로 정렬되어 출력된다.
728x90
반응형
그리드형
'문제풀이(Problem Solving)' 카테고리의 다른 글
백준, BOJ, 7662번, N번째 큰 수 C++ [CPP] ★★★ (0) | 2022.03.27 |
---|---|
백준, BOJ, 7662번, 이중 우선순위 큐 C++ [CPP] ★★ (0) | 2022.03.27 |
프로그래머스, N으로 표현: C++ [CPP] ★★ (0) | 2022.03.08 |
백준, BOJ, 1525번, 퍼즐 C++ [CPP] ★★★★★ (0) | 2022.03.06 |
백준, BOJ, 21921번, 블로그 C++ [CPP] ★★ (0) | 2022.03.05 |