본문 바로가기
Problem Solving/BOJ

[DP] python 1309 동물원

by Bokoo14 2023. 2. 3.

https://www.acmicpc.net/problem/1309

 

1309번: 동물원

첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다.

www.acmicpc.net

# 2023.02.03
import sys
input = sys.stdin.readline

n = int(input())

answer=0
dp=[[0]*(n+1) for _ in range(3)] # 경우의 수를 저장
dp[0][1]=1 # 모두 선택하지 않는 경우
dp[1][1]=1 # 1행을 선택하는 경우
dp[2][1]=1 # 2행을 선택하는 경우
for i in range(2,n+1): #col을 +1씩 이동
    # 현재 아무것도 선택하지 않았다면 그 전에는 (아무것도 선택하지 않음, 1행 선택, 2행 선택)->3가지 경우 모두 가능
    dp[0][i]=(dp[0][i-1]+dp[1][i-1]+dp[2][i-1])%9901 
    dp[1][i]=(dp[0][i-1]+dp[2][i-1])%9901
    dp[2][i]=(dp[0][i-1]+dp[1][i-1])%9901

print((dp[0][n]+dp[1][n]+dp[2][n])%9901)

'Problem Solving > BOJ' 카테고리의 다른 글

[Two Pointer] python 1806 부분합  (0) 2023.02.04
[문자열] python 20437 문자열 게임2  (2) 2023.02.03
[DP] python 12852 1로 만들기2  (0) 2023.02.01
[DP] python 2193 이친수  (0) 2023.01.29
[DP] python 1890 점프  (0) 2023.01.29