본문 바로가기

코딩/Python

[Python] 백준 1309 동물원

반응형

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

 

1309번: 동물원

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

www.acmicpc.net

 

코드 작성

n = int(input())
dp = [[0]*3 for _ in range(n+1)]
dp[0] = [1,1,1]
for i in range(1, n):
    dp[i][0] = (dp[i-1][1] + dp[i-1][2]) % 9901
    dp[i][1] = (dp[i-1][0] + dp[i-1][2]) % 9901
    dp[i][2] = (dp[i-1][0] + dp[i-1][1] + dp[i-1][2]) % 9901
print(sum(dp[n-1])%9901)

코드  풀이

#1. 점화식

dp[n][0] : 첫 번째 칸에 채워졌을 때

dp[n][1] : 두 번째 칸에 채워졌을 때

dp[n][2] : 두 칸 모두 채워지지 않았을 때

 

#2. 초기값

dp[0]의 [0], [1], [2] 의 값을 각각 1로 세팅

 

#3. dp값 세팅

[[0,0,0], [0,0,0], [0,0,0] ... [0,0,0]]

 

#4. print

인덱스 0부터 시작했으므로 n-1값을 출력

반응형

'코딩 > Python' 카테고리의 다른 글

[Python] 백준 2004 조합 0의 개수  (0) 2022.12.12
[Python] 백준 1699 RGB거리  (0) 2022.12.11
[Python] 백준 15988 1, 2, 3 더하기3  (1) 2022.12.10
[Python] 백준 1699 제곱수의 합  (1) 2022.12.10
[Python] 백준 2475 검증수  (0) 2022.12.09