DP 2

[백준 11060] 점프 점프 - 자바(JAVA)

1. 문제 https://www.acmicpc.net/problem/11060 11060번: 점프 점프 재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로 www.acmicpc.net 2. 풀이 `DP`로 문제를 풀었습니다. dp배열은 해당 칸까지 가는데 걸리는 최소 점프 횟수입니다. 만약에 data[3]=3이고 dp[3]=2라면 3번째 칸 까지 가는 최소 점프 횟수는 2번인데 3번째 칸에서 4, 5, 6칸을 갈 수 있는데 점프를 하니까 3번(dp[3]+1)만에 갈 수 있습니다. 최소면 갱신하고 아니라면 무시하면 됩니다. 이렇게 최솟값을 갱신하면서 dp[0..

알고리즘 2023.08.10

[백준2302] 극장 좌석 - 자바(JAVA)

1. 문제 https://www.acmicpc.net/problem/2302 2302번: 극장 좌석 주어진 조건을 만족하면서 사람들이 좌석에 앉을 수 있는 방법의 가짓수를 출력한다. 방법의 가짓수는 2,000,000,000을 넘지 않는다. (2,000,000,000 < 231-1) www.acmicpc.net 2. 풀이 제가 짠 코드의 알고리즘은 `isVIP`라는 boolean 배열을 두어서 VIP좌석 표시하였습니다. `isVIP`를 탐색하다가 VIP좌석이 아닐때 count를 세고 VIP좌석을 발견했을 때 `dp[count]`를 결과값에 곱해주는 것입니다. 그래서 구현 편리성을 위해서 배열의 마지막 좌석 뒤(N+1)에 임의로 true로 하였습니다. `dp[n]`은 (VIP아닌)연속된 좌석이 n개 있을 때..

알고리즘 2023.07.21