level - hard
자세한 설명과 내용은 아래 링크를 참고해주세요.
https://velog.io/@mdok1112/leetcode-count-vowels-permutationjava
위의 링크에서는 설명과 자바코드가 들어있으며
여기서는 코틀린으로 작성한 코드만 있습니다.
class Solution {
fun countVowelPermutation(n: Int): Int {
val dp = Array(n) {LongArray(5)}
for(i in 0 until 5) {
dp[0][i] = 1
}
for(i in 1 until n) {
dp[i][0] = dp[i-1][1] + dp[i-1][2] + dp[i-1][4]
dp[i][1] = dp[i-1][0] + dp[i-1][2]
dp[i][2] = dp[i-1][1] + dp[i-1][3]
dp[i][3] = dp[i-1][2]
dp[i][4] = dp[i-1][2] + dp[i-1][3]
for(j in 0 until 5) {
dp[i][j] %= 1000000007L
}
}
var answer = 0L
for(i in 0 until 5) {
answer += dp[n-1][i]
answer %= 1000000007L
}
return answer.toInt()
}
}