알고리즘 정복하기!/백준 문제풀이

백준 22353번 Python / 수학, 구현, 확률론

by seokii 2022. 3. 8.
728x90
반응형

문제풀이 GitHub

https://github.com/Seokii/baekjoon

 

GitHub - Seokii/baekjoon: Daily Commit for Baekjoon

Daily Commit for Baekjoon. Contribute to Seokii/baekjoon development by creating an account on GitHub.

github.com

문제 링크

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

 

22353번: 헤이카카오

첫 번째 줄에는 세 개의 정수 $a, d, k$가 공백으로 구분되어 주어진다. $(1 \leq a, d, k \leq 100)$ 이는 끝말잇기 한 판에 $a$분이 걸리며 집중을 시작한 이하가 처음에 끝말잇기에서 이길 확률이 $d$%이

www.acmicpc.net

 

풀이

a,d,k = map(int, input().split())

def expected_value(d):
    if d >= 100:
        return a
    tmp = d * 0.01 * a + (100-d) * 0.01 * (a + expected_value(d * (1 + k * 0.01)))
    return tmp

print("{:.10f}".format(expected_value(d)))

기댓값을 구하는 함수를 정의해서 문제를 풀었습니다.

처음에 주어진 확률이 100이 넘는다면 그대로 a를 출력합니다.

무조건 이길 확률이 아니라면,

이길 확률 * 시간(a) + 지는 확률 * (시간 + 다음 번에 이길 확률의 시간 값)

의 방식으로 함수를 정의했습니다.

 

 

728x90
반응형

댓글