알고리즘 모음(C++)

백준 4358 - 생태학(C++) 본문

백준

백준 4358 - 생태학(C++)

공대생의 잡다한 사전 2023. 6. 18. 20:21

문제 링크입니다. https://www.acmicpc.net/problem/4358

 

4358번: 생태학

프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어

www.acmicpc.net

종이 몇% 있는지 구하는 문제입니다.

map을 사용해 중복된 종은 1씩 증가하며, 새로운 종은 추가해줍니다.

 

마지막에 X번째 종의 개수와 전체 개수의 백분율을 구해 출력해주면 됩니다.

 

 

자세한 것은 코드를 참고해주세요.

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#include <map>

using namespace std;

map<string, double> String;
double cnt = 0;

int main(){
    cin.tie(0);
    cout.tie(0);
    string str;
    while(getline(cin, str)){
        cnt++;
        if(String.find(str) == String.end()){
            String[str] = 1;
        }
        else String[str]++;
    }
    map<string, double> ::iterator calcul;
    for(calcul = String.begin(); calcul != String.end(); calcul++){
        double Div = (calcul->second / cnt) * 100.0;
        cout << calcul->first << " ";
        printf("%.4f\n", Div);
    }
    return 0;
}

 

 

질문 및 조언은 댓글을 남겨주세요

'백준' 카테고리의 다른 글

백준 25501 - 재귀의 귀재(C++)  (0) 2023.06.18
백준 12904 - A와 B(C++)  (0) 2023.06.18
백준 1212 - 8진수 2진수(C++)  (0) 2023.06.18
백준 4999 - 아!(C++)  (0) 2023.06.15
백준 1120 - 문자열(C++)  (0) 2023.06.11