백준/Python

[백준] 26217 별꽃의 세레나데(Easy) (python 파이썬)

노랑꼬리 2022. 12. 22. 22:22

문제링크 : https://www.acmicpc.net/problem/26217

 

26217번: 별꽃의 세레나데 (Easy)

겨울 나라의 왕은 꽃을 좋아하는 왕비를 위해 가장 아름다운 꽃들을 모아 화관을 만들기로 했다. 왕비가 좋아하는 꽃들은 특별해서 마법의 씨앗을 심은 뒤 별빛을 받아야 피어난다. 마법의 씨앗

www.acmicpc.net

 

작성코드

 

해설

 

꽃이 필 확률은 꽃의 종류와 동일하다.

즉 3종류라면

각각 1/3 일 것이고

5종류라면 

각각 1/5 일 것이다.

 

그런데 모든 종류를 피워야만 한다.

 

5종류를 예시로 들어보자

 

필요한 씨앗의 기댓값을 구해야한다.

 

일단 무조건 첫번째 피는 꽃은 100% 확률로 사용될 것이다. 어떤 꽃이던지 사용될 것이므로 씨앗 하나면 성공한다.

5/5

 

두번째 꽃은 첫번째 꽃을 제외한 꽃이 피어야 사용 가능하다

4/5 확률 이므로 성공을 위한 씨앗의 기댓값은

5/4

 

세번째 꽃은

3/5 확률 이므로 기댓값은 

5/3

...

...

다섯번쨰 꽃의 기댓 값은

5/1

 

이 기댓값들을 전부 합한 것이 필요한 씨앗의 총 기댓값이 된다.

 

이를 코드로 만들어보면

 

분모가 줄어드는 반복문으로 작성 가능하다.