- Today
- Total
- dp
- μλ°μμ μ
- μμμ λ ¬
- νλ‘κ·Έλλ¨Έμ€
- MST
- 그리λ
- tree
- PS
- CS
- pytorch
- λ°μ΄ν°λ² μ΄μ€
- java
- μΈν΄
- λ°±μλ
- λ¬Έλ²
- BFS
- Algorithm
- μλ£κ΅¬μ‘°
- μ‘Έμ μν
- spring
- λ°±μ€
- λ€μ΅μ€νΈλΌ
- OOP
- database
- μλ°
- Graph
- 벨λ§ν¬λ
- leetcode
- ꡬν
- array
Partially Committed
[λ°±μ€ 19622] νμμ€ λ°°μ 3 (JAVA) λ³Έλ¬Έ
[λ°±μ€ 19622] νμμ€ λ°°μ 3 (JAVA)
WonderJay 2023. 8. 18. 15:37https://www.acmicpc.net/problem/19622
EASY~
λ¬Έμ λ λ¨μνλ€
νμμ€μ΄ 1 κ° μκ³ ,
n κ°μ νμ μ λ³΄κ° μ£Όμ΄μ§λ€.
νμ μ 보λ μμμκ°, μ’ λ£μκ°, μ°Έμ μΈμμΌλ‘ μ΄λ£¨μ΄μ Έμλ€.
μ£Όμ΄μ§ μν©μμ κ°μ₯ λ§μ μΈμμ΄ νμλ₯Ό μ°Έμν μ μμ λ,
κ·Έ μΈμμ μλ₯Ό κ³μ°νλ©΄ λλ€.
νμ μ 보λ νμ μμ μκ° < μ’ λ£ μκ°μ λ§μ‘±ν μνλ‘ μ£Όμ΄μ§λ€.
κ·Έλ¦¬κ³ μ€μν μ‘°κ±΄μ΄ νλ μλλ°...
K λ²μ§Έ νμλ K-1, K+1 λ²μ§Έ νμλλ§ μκ°μ΄ κ²ΉμΉλ€λ μ μ½μ΄λ€.
μ΄ μ‘°κ±΄ λλΆμ λ¬Έμ μ λμ΄λκ° ν λ¨μ΄μ§λ€.
K λ²μ§Έ νμλ₯Ό ννλ©΄ K - 1 λ²μ§Έ νμλ νν μ μλ€.
μ¦,
K-2 λ²μ§Έ νμλ₯Ό ννκ³ , K λ²μ§Έ νμλ₯Ό ννλ κ²½μ°μ
K-1 λ²μ§Έ νμλ₯Ό ννκ³ , K λ²μ§Έ νμλ₯Ό ννμ§ μλ κ²½μ° μ€
λ μ’μ κ²½μ°(μΈμ μκ° λ λ§μ κ²½μ° ~> μ΄ κ²½μ°μλ max μ°μ°)λ₯Ό κ°±μ ν΄λκ°λ©΄ λλ€.
μ¦,
f(x) λ₯Ό x λ²μ§Έ νμκΉμ§ κ³ λ €νμ λ, μ°Έμκ°λ₯ν μΈμμ μ΅λκ°μ΄λΌκ³ μ μνλ©΄
f(x) = Max (f(x-2) + people(x), f(x-1)) μ΄λΌλ μ νμμ μμ±ν μ μλ€.
( μ¬κΈ°μ people(x) λ x λ²μ§Έ νμμ μ°Έμ¬νκΈ°λ‘ μμ λ μΈμ μλ₯Ό μλ―Ένλ€. )
μ νμμ μ½κ² λμΆν μ μμΌλ―λ‘
bottom - up λ°©μμΌλ‘ dp table μ μ±μλκ° μ μλ€.
dp[0] μ 0 λ²μ§Έ νμμ μ°Έμ μΈμμ λ£μ΄μ£Όλ©΄ λ κ²μ΄κ³ ,
dp[1] μ dp[0] κ³Ό people[1] μ€ λ ν° κ°μΌλ‘ μ΄κΈ°ν νλ©΄ λλ€.
dp[2] λΆν° n-1 κΉμ§λ μμμ λμΆν μ νμμΌλ‘ μ±μλκ°λ©΄
μ΅μ’ λ΅μμ dp[n-1] μ΄ λλ€.
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
System.setIn(new FileInputStream("src/input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer stk;
int n = Integer.parseInt(br.readLine()); // νμ μ
int[][] table = new int[n + 1][3];
for (int i = 0; i < n; i++) {
stk = new StringTokenizer(br.readLine());
table[i][0] = Integer.parseInt(stk.nextToken());
table[i][1] = Integer.parseInt(stk.nextToken());
table[i][2] = Integer.parseInt(stk.nextToken());
}
long[] dp = new long[n + 1];
dp[0] = table[0][2];
dp[1] = Math.max(dp[0], table[1][2]);
for (int i = 2; i < n; i++) {
dp[i] = Math.max(dp[i - 2] + table[i][2], dp[i - 1]);
}
bw.write(dp[n - 1] + "\n");
bw.flush();
bw.close();
}
}
μ λ¬Έμ λ
" K λ²μ§Έ νμλ K-1, K+1 λ²μ§Έ νμλλ§ μκ°μ΄ κ²ΉμΉλ€λ μ μ½ " λλΆμ μ½κ² ν μ μμλ€.
μ΄ μ‘°κ±΄μ΄ μμ΄μ§λ€λ©΄..??
https://www.acmicpc.net/problem/19623
κ·Έλ¬λ©΄ μ λ¬Έμ μν©μ΄ λλλ°,
μ΄κ±΄ λ΄μΌ νμ΄μΌκ² λ€ ^_^
'π₯ Algorithm || λ¬Έμ νμ΄ > PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μΈκ·Έλ¨ΌνΈ νΈλ¦¬ (Java, Segment tree) (0) | 2023.08.09 |
---|---|
[λ°±μ€ 1931] νμμ€ λ°°μ (0) | 2023.07.28 |
[λ°±μ€ 1213] ν°λ¦°λ둬 λ§λ€κΈ° JAVA (λ¬Έμμ΄, 그리λ, ꡬν) (0) | 2023.06.26 |
[λ°±μ€ 15681] νΈλ¦¬μ 쿼리 (νΈλ¦¬ DP) (2) | 2023.06.07 |
[λ°±μ€ 9019] DSLR μλ°(BFS + κ²½λ‘ μΆμ ) (0) | 2023.06.03 |