티스토리 뷰

728x90

문제 링크

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


힌트에 괜히 쓸데없는 말을 집어넣어서 평균과 기댓값을 구하도록 유도하는데 굳이 그럴 필요 없다.


기댓값 E(X)=ipixi이고 어떤 수 x가 수열에 등장할 확률 P(x)=x의 등장 횟수전체 수열의 길이  이다. 

x의 등장 횟수를 c라 하고 전체 수열의 길이를 n이라 하면

 P(x)=cn 이고 이때  px=cxn인데, 이는 xnc번 더한 것과 같다.

결국 기댓값 E(X)=ixin이므로 평균과 다를 바 없기 때문에 항상 평균기댓값=1이다.


분모가 0인 경우를 보면 모든 x 값이 0인 경우밖에 없다.

따라서 N이 0이거나 모든 x가 0인 경우에는 "dvide by zero"를 출력하고, 그 외에는 "1.00"을 출력하면 된다.



정답 코드

#include <iostream>
using namespace std;
int n;
int sum;
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
sum += x;
}
if (sum == 0) {
cout << "divide by zero";
return 0;
}
cout << "1.00";
}
view raw 15921.cpp hosted with ❤ by GitHub





질문, 피드백 환영합니다.

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함