๐ŸŒฒ Altu-Bitu/0906 ๋งต๊ณผ ์…‹

[BOJ][C++] ๋ฐฑ์ค€ 4358๋ฒˆ: ์ƒํƒœํ•™

์„ ๋‹ฌ 2024. 8. 24. 05:32
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/4358

 

๋ฌธ์ œ

์ƒํƒœํ•™์—์„œ ๋‚˜๋ฌด์˜ ๋ถ„ํฌ๋„๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‹น์‹ ์€ ๋ฏธ๊ตญ ์ „์—ญ์˜ ๋‚˜๋ฌด๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ ์ข…์ด ์ „์ฒด์—์„œ ๋ช‡ %๋ฅผ ์ฐจ์ง€ํ•˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

์ž…๋ ฅ

ํ”„๋กœ๊ทธ๋žจ์€ ์—ฌ๋Ÿฌ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ํ•œ ์ค„์— ํ•˜๋‚˜์˜ ๋‚˜๋ฌด ์ข… ์ด๋ฆ„์ด ์ฃผ์–ด์ง„๋‹ค. ์–ด๋–ค ์ข… ์ด๋ฆ„๋„ 30๊ธ€์ž๋ฅผ ๋„˜์ง€ ์•Š์œผ๋ฉฐ, ์ž…๋ ฅ์—๋Š” ์ตœ๋Œ€ 10,000๊ฐœ์˜ ์ข…์ด ์ฃผ์–ด์ง€๊ณ  ์ตœ๋Œ€ 1,000,000๊ทธ๋ฃจ์˜ ๋‚˜๋ฌด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ฃผ์–ด์ง„ ๊ฐ ์ข…์˜ ์ด๋ฆ„์„ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ ์ข…์ด ์ฐจ์ง€ํ•˜๋Š” ๋น„์œจ์„ ๋ฐฑ๋ถ„์œจ๋กœ ์†Œ์ˆ˜์  4์งธ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผํ•ด ํ•จ๊ป˜ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

๋ฌธ์ œ ํ’€์ด๋ณด๋‹ค ์ž…์ถœ๋ ฅ์ด ๋” ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ

 

C++์—์„œ ์ถœ๋ ฅ ์†Œ์ˆซ์ ์„ ๊ณ ์ •ํ•˜๋Š” ๋ฒ•

cout << fixed;

 

C++์—์„œ ์†Œ์ˆ˜์  ์•„๋ž˜ n๊ฐœ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฒ•

cout.precision(n);

 

๊ทธ๋ฆฌ๊ณ  ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์ˆ˜๋“ค์„ int๊ฐ€ ์•„๋‹Œ double๋กœ ์ง€์ •ํ•˜๋Š”๊ฑธ ์žŠ์ง€ ๋ง์ž

// ํ’€์ด : https://whkakrkr.tistory.com

#include <iostream>
#include <map>
#include <cmath>

using namespace std;

int main() {
    string input;
    double total=0;
    map<string, double>tree;
    
    while(getline(cin, input)) {
        tree[input]++;
        total++;
    }
    
    cout << fixed; // ์†Œ์ˆซ์  ๊ณ ์ •
    cout.precision(4); // ์†Œ์ˆ˜์  ์•„๋ž˜ 4๊ฐœ ์ถœ๋ ฅ
    
    for(auto i : tree) {
        double value = 100 * i.second / total;
        cout << i.first << " " << value << "\n";
    }
    
    return 0;
}
๋ฐ˜์‘ํ˜•