[BOJ] 16470 A Homogeneous Country

통계 잘 몰라도 풀 수 있어요

Table Of Contents

0. 들어가기

1. 문제 요약

2. 풀이 정리

3. 구현

입력의 끝이 따로 지정되지 않았기 때문에 cin.eof()를 이용해서 반복문을 처리해야 한다.

#include <iostream> #include <string> #include <map> using namespace std; map<string, int> m; int n; double sum; int main() { while (true) { string C; cin >> C; if (cin.eof() == true) break; n++; // 이미 m이 존재하는 경우 if (m.find(C) != m.end()) { m[C]++; } else { m[C] = 1; } } for (auto j = m.begin(); j != m.end(); j++) { double p_j = (double)(j -> second) / (double)n; sum += p_j * p_j; } cout << 1 - sum; return 0; }

4. 여담