백준 1072번 게임

< 백준 1072번 게임 - 마포 코딩박 >

사용한 알고리즘: 수학


 현재까지의 게임 횟수와 이긴 횟수 가 주어지고, 앞으로는 모두 이긴다고 가정했을 때, 몇판을 더 해야 승률이 증가하는지 구하는 문제였습니다.

풀이는 다음과 같습니다.
(1)
 X: 전체판수, Y: 이긴횟수, Z: 승률이라고 하면, Z = 100*(Y/X) 입니다.
 승률이 Z+1 이 되기 위한 추가 판수를 K 라 하면, Z+1 = 100*(Y+K/X+K) 입니다.
 따라서 K = ((Z+1)*X - 100*Y)/(99-Z) 입니다.

 주의할 점은, Z를 계산할 때 Y/X*100 이라고 하면 안된고 100*Y/X라고 해야합니다.
 (정확한 이유는... 모르겠습니다.)
 또한 Z 가 이미 99 프로 이상이면, 100프로를 만들기는 불가합니다.



댓글