엔트로피
면접 대비시간 제한1초메모리 제한128 MB
한 줄의 문자열을 읽고 각 문자의 등장 횟수를 세어 섀넌 엔트로피를 소수점 셋째 자리까지 반올림해 출력한다.
문제
1948년 클로드 섀넌(Claude E. Shannon)은 논문 통신의 수학적 이론(The Mathematical Theory of Communication)에서 이산 확률 분포 의 엔트로피를 정의하는 유명한 공식을 제시했다.
이 공식을 문자열에 적용하기 위해, 를 문자열에서 각 문자가 등장하는 상대 빈도로 둔다. 예를 들어 길이가 38인 문자열 Northeastern European Regional Contest(공백 3개 포함)의 엔트로피는 소수점 아래 셋째 자리까지 반올림하면 이다. 아래 표는 이 문자열의 각 문자에 대한 상대 빈도 와 엔트로피의 각 항 를 보여 준다.
주어진 문자열의 엔트로피를 계산하라.
입력
입력은 한 줄로 이루어지며, 길이가 1 이상 1000 이하인 문자열이 주어진다. 문자열의 각 문자는 0–9, a–z, A–Z, .(마침표), 공백 중 하나이다. 앞, 중간, 뒤에 오는 공백도 모두 문자열의 일부이다.
출력
입력 문자열의 엔트로피 를 한 줄에 출력한다. 여기서 는 각 문자의 상대 빈도이다. 답은 소수점 아래 셋째 자리까지 반올림하여 출력한다.