본문 바로가기

2023하계모각코

2023 하계모각코 1회차 개인 목표 및 결과

일시

 

2023-07-07 20:00~ 23:00

 

목표

1회차에서는 dp문제를 풀어볼 생각이다.

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

 

2302번: 극장 좌석

주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 < 231-1)

www.acmicpc.net

결과

import sys

n = int(sys.stdin.readline())
m = int(sys.stdin.readline())
vip = [int(sys.stdin.readline()) for _ in range(m)]

dp = [0] * (n + 1)
dp[0] = 1
dp[1] = 1 # 1
dp[2] = 2 # 1 2, 2 1
# dp[3] = 3 # 1 2 3, 1 3 2, 2 1 3

for i in range(3, n + 1):
    dp[i] = dp[i - 1] + dp[i - 2]


answer = 1
if m > 0:
    pre = 0
    for j in range(m):
        answer *= dp[vip[j] - 1 - pre]
        pre = vip[j]
    answer *= dp[n - pre]
else:
    answer = dp[n]
print(answer)

방학을 시작하고 학기중 잊었던 코딩 감각을 되살리기 위한 몸풀기 문제를 풀어보았다.