백준 알고리즘/Lang-C | C++

[백준/C] 15921번 수찬은 마린보이야!!

Jongung 2021. 9. 22. 20:08

 

백준 온라인 저지 / 15921번 수찬은 마린보이야!! 

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

 

15921번: 수찬은 마린보이야!!

기댓값 E(X)의 정의는 ‘각 사건이 벌어졌을 때의 이득과 그 사건이 벌어질 확률을 곱한 것을 전체 사건에 대해 합한 값’이다. 다시 말해, 어떤 수 x가 수열에 등장할 확률 P(x) = (x의 등장 횟수) /

www.acmicpc.net

  • 사용언어 : C (C99)
  • 알고리즘 : 수학, 사칙연산

 

문제 설명

 

C 코드

1. 문제 정리

1개의 정수로 테스트 케이스를 받고, 테스트 케이스만큼 입력 받아오는 문제이다.

(연습 기록들의 평균값) / (연습 기록들 중 하나를 균일한 확률로 뽑을 때의 기댓값) 이라는 말을 제대로 이해 하지 못한다면 해결 할 수 없는 문제이다.

기댓값 E(X)의 정의는 ‘각 사건이 벌어졌을 때의 이득과 그 사건이 벌어질 확률을 곱한 것을 전체 사건에 대해 합한 값’이다. 다시 말해, 어떤 수 x가 수열에 등장할 확률 P(x) = (x의 등장 횟수) / (전체 수열의 길이)이고, 이때 기댓값은 수열에 등장하는 모든 x에 대해 (x * P(x))를 구해 모두 더한 값이 된다.

즉 0을 제외한 어떠한 값이 들어오던 간에 1이 나온다는 뜻이다. 그래서 간단히 삼항 연산자를 통해 문제를 해결 해 주었다.

 

2. 완성 코드

#include <stdio.h>

int main(void) {
  int n;
  scanf("%d", &n);
  printf("%s", n == 0 ? "divide by zero" : "1.00");
}