티스토리 뷰
나무를 나무의 분포도를 출력하는 문제
문자열을 입력받고 해당 문자열이 총 얼마나 나왔는지 백분율로 계산하여 소수점 4자리까지 반올림하여 출력하는 문제이다.
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
map<string, float> m;
string treeName;
float total = 0;
while (getline(cin, treeName)) {
total++;
if (m.find(treeName) == m.end()) {
m[treeName] = 1;
}
else {
m[treeName] += 1;
}
}
cout << fixed;
cout.precision(4);
for (auto it = m.begin(); it != m.end(); it++) {
cout << it->first << " " << (it->second / total) * 100 << endl;
}
return 0;
}
getline으로 문자열을 받고,
map에 문자열과 해당 문자열의 등장 빈도를 value로 저장 시킨다.
cout << fixed; cout.percision(4);로 소수점 고정시킨다.
map을 순회하며 각각 문자열에 대한 등장빈도를 백분률로 계산하여 출력시킨다.
시간 복잡도 : O(n)
공간 복잡도 : O(n)
'알고리즘 문제 풀이' 카테고리의 다른 글
[알고리즘문제] 릿코드 Maximum Depth of N-ary Tree (0) | 2021.04.21 |
---|---|
[알고리즘문제] 백준 수 찾기 (0) | 2021.04.16 |
[알고리즘문제] 백준 비밀번호 찾기 (0) | 2021.04.16 |
[알고리즘문제] 백준 암기왕(2776번) 시간초과 (0) | 2021.04.14 |
[알고리즘문제] 백준 회사에 있는 사람(7785번) (0) | 2021.04.13 |