๋ฌธ์
์ํํ์์ ๋๋ฌด์ ๋ถํฌ๋๋ฅผ ์ธก์ ํ๋ ๊ฒ์ ์ค์ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋น์ ์ ๋ฏธ๊ตญ ์ ์ญ์ ๋๋ฌด๋ค์ด ์ฃผ์ด์ก์ ๋, ๊ฐ ์ข ์ด ์ ์ฒด์์ ๋ช %๋ฅผ ์ฐจ์งํ๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด์ผ ํ๋ค.
์ ๋ ฅ
ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ํ ์ค์ ํ๋์ ๋๋ฌด ์ข ์ด๋ฆ์ด ์ฃผ์ด์ง๋ค. ์ด๋ค ์ข ์ด๋ฆ๋ 30๊ธ์๋ฅผ ๋์ง ์์ผ๋ฉฐ, ์ ๋ ฅ์๋ ์ต๋ 10,000๊ฐ์ ์ข ์ด ์ฃผ์ด์ง๊ณ ์ต๋ 1,000,000๊ทธ๋ฃจ์ ๋๋ฌด๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฃผ์ด์ง ๊ฐ ์ข ์ ์ด๋ฆ์ ์ฌ์ ์์ผ๋ก ์ถ๋ ฅํ๊ณ , ๊ทธ ์ข ์ด ์ฐจ์งํ๋ ๋น์จ์ ๋ฐฑ๋ถ์จ๋ก ์์์ 4์งธ์๋ฆฌ๊น์ง ๋ฐ์ฌ๋ฆผํด ํจ๊ป ์ถ๋ ฅํ๋ค.
ํ์ด
์์์ ๊ณ ์ ๊ณผ map๋ง ์๋ฉด ๋น ๋ฅด๊ฒ ํ ์ ์๋ ๋ฌธ์ !
01. ๊ณต๋ฐฑ ํฌํจ ํ ์ค์ฉ ์ ๋ ฅ
getline(cin, name)
- key๊ฐ ์ข ์ด๋ฆ, value๊ฐ ์ถํ ๋น๋ ์์ธ map์ ๋ง๋ค์ด ๊ฐ์ ๋ฃ์ด์ค๋ค
- ์ ์ฒด ๋น๋ ์๋ ํ๋์ฉ ์ฌ๋ ค์ค๋ค.
02. ์์์ ์๋ฆฌ ๊ณ ์
cout << fixed;
cout.precision(4); // ์ํ๋ ์์์ ์ดํ ์๋ฆฟ์
#include <iostream>
#include <map>
using namespace std;
int main(){
string name;
int total_cnt = 0;
map<string, double> m;
while(getline(cin, name)){ // ๊ณต๋ฐฑ ํฌํจ ํ ์ค์ฉ ์
๋ ฅ๋ฐ๊ธฐ
m[name]++;
total_cnt++;
}
// ์์์ ์๋ฆฌ ๊ณ ์ (4์๋ฆฌ)
cout << fixed;
cout.precision(4);
for (auto & iter : m){
cout << iter.first << " " << (iter.second/total_cnt)*100 << "\n";
// double ์ ์จ๋ ๋จ(int -> double ํ๋ณํ)
}
}
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 18870๋ฒ : ์ขํ ์์ถ (0) | 2021.09.12 |
---|---|
[๋ฐฑ์ค/C++] 9375๋ฒ : ํจ์ ์ ์ ํ๋น (0) | 2021.09.12 |
[๋ฐฑ์ค/C++] 2015๋ฒ : ์๋ค์ ํฉ 4 (0) | 2021.09.12 |
[๋ฐฑ์ค/C++] 1764๋ฒ : ๋ฃ๋ณด์ก (0) | 2021.09.12 |
[๋ฐฑ์ค/C++] 10757๋ฒ : ํฐ ์ (0) | 2021.09.12 |
๋๊ธ