Skip to content

Commit 4517cea

Browse files
committed
[BOJ] #2302. 극장 좌석 / 실버1 / 59분 / 힌트, 성공
1 parent 15c0cec commit 4517cea

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import sys
2+
input = sys.stdin.readline
3+
4+
# 1. 입력
5+
N = int(input()) # 좌석의 개수
6+
M = int(input()) # 고정석의 개수
7+
vip_list = [int(input()) for _ in range(M)] # VIP 고정석 번호 리스트
8+
9+
# 2. DP 초기화
10+
dp = [0] * (N + 1)
11+
dp[0], dp[1] = 1, 1
12+
13+
# 3. 피보나치 수열 기반 DP 채우기
14+
for i in range(2, N+1):
15+
dp[i] = dp[i-1] + dp[i-2]
16+
17+
# 4. 좌석 구간별 계산
18+
answer = 1
19+
prev = 0 # 이전 VIP 좌석 번호
20+
21+
for vip in vip_list:
22+
section = vip - prev - 1 # VIP 좌석 전까지 자유 좌석 구간 길이
23+
answer *= dp[section] # 그 구간에서 가능한 배치 수 곱하기
24+
prev = vip # 현재 VIP를 기준으로 다음 구간 나눌 준비
25+
26+
# 5. 마지막 구간 처리 (VIP 이후 남은 좌석이 있는 경우)
27+
section = N - prev
28+
answer *= dp[section]
29+
30+
print(answer)

0 commit comments

Comments
 (0)