문제
발상
비행기가 $i$만큼 이동했을때, 경우의 수는 $i-1$만큼 이동했을때 에서 두가지로 나뉜다는 것을 알 수 있습니다. 이에 착안해 점화식을 세워 DP로 풀 수 있습니다.
비행기가 날아갈 때 이동한 거리를 $i$, 그 때의 고도를 $j$라고 합시다. 이때 경우의 수를 $dp[i][j]$라고 하면
$dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1]$임을 이용해 쉽게 풀 수 있습니다.
코드
1 |
|
여담
사실 점화식은 엄청 빨리 떠올렸는데 답이 int범위를 벗어날 거란 생각을 못해서 4번이나 틀렸습니다… ㅠㅠ
앞으로 경우의 수 구하는 문제는 int 범위를 벗어나지는 않는지 꼼꼼하게 체크해야겠습니다.