Lewis's Tech Keep
[백준] 극장 좌석 본문
참고 : www.acmicpc.net/problem/2302
- dp 문제
- dp[i] : dp[i-1] + dp[i-2] (ex. 1234 -> dp[3] 123 + 4 : 하나만 바꿈, dp[2] 12 + 34 : 둘 다 바꿈 )
- 나머지는 중복되므로 dp[i] = dp[i-1] + dp[i-2]가 성립.
- 경우의 수에 따라 vip 좌석 전 후 경우의 수 : a*b (ex a : 2가지 b: 2가지 = a*b)
더보기
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int[] dp = new int[N+1];
int answer = 1;
dp[0] = 1;
dp[1] = 1;
for (int i = 2; i <= N; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
int prevVip = 0;
for (int i = 1; i <= M; i++) {
int vip = sc.nextInt();
answer *= dp[vip - prevVip - 1];
prevVip = vip;
}
answer *= dp[N - prevVip];
System.out.println(answer);
}
}
'Java > 알고리즘' 카테고리의 다른 글
[백준] 외판원 순회 (0) | 2021.04.15 |
---|---|
[백준] 고층 빌딩 (0) | 2021.04.13 |
[프로그래머스] 길찾기 게임 (0) | 2021.04.12 |
[백준] 줄세우기(2631) (0) | 2021.04.08 |
[백준] 내려가기 (0) | 2021.04.07 |
Comments