class Solution: def checkRecord(self, n: int) -> int: dp = [[[-1 for _ in range(n+1)] for _ in range(2)] for _ in range(3)] def cal(cl, a, n): if a == 2 or cl == 3: return 0 if n == 0: return 1 if dp[cl][a][n] != -1: return dp[cl][a][n] ans = cal(0, a+1, n-1) ans += cal(cl+1, a, n-1) ans += cal(0, a, n-1) dp[cl][a][n] = ans % 1000000007 return dp[cl][a][n] return cal(0, 0, n)오랜만에 풀어보는 탑다운 dp 문제.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.