Leetcode Java Airplane Seat Assignment Probability
업데이트:
문제
코드
class Solution {
public double nthPersonGetsNthSeat(int n) {
return n == 1 ? 1.0d : 0.5d;
}
}
결과
설명
-
n번째 승객이 n석이 존재하는 비행기에 탑승할 때, 각 승객이 임의 좌석에 앉을 경우 자기 자신의 좌석에 앉을 확률을 구하는 문제이다.
-
첫 손님은 첫 자리에 앉을 수 있으므로 1을, 그 외는 0.5를 주어진 문제의 결과로 반환한다.
- n이 2인 경우, $f(2) = \frac{1}{2}$를 만족하는 것을 알 수 있다.
- 위를 이용하여 $f(m + 1) = \frac{1}{m + 1} + \frac{m + 1 - 2}{m + 1} \times f(m) = \frac{2}{2 \times (m + 1)} + \frac{m - 1}{m + 1} \times \frac{1}{2} = \frac{m + 1}{2 \times (m + 1)} = \frac{1}{2}$를 만족하므로, n이 1이 아닌 결과는 모두 0.5가 된다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기