μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- μκ³ λ¦¬μ¦
- svgνμΌ λ€λ£¨κΈ°
- μ½λ ν¬λ©§
- JavaScript
- DP
- Node.js
- router v6
- λΈλ£¨νΈν¬μ€
- λ°±μ€
- λΆμ€νΈμΊ νμΉλͺ¨λ°μΌ
- μ½ν
- js
- Redux toolkit
- μ΄λ―Έμ§ μμ
- 리λμ€ ν΄ν·
- μ½λ©ν μ€νΈ
- νλ‘κ·Έλλ¨Έμ€
- custom hook
- μΉ΄μΉ΄μ€
- λλκ·Έ μ΄λ²€νΈ
- λμ κ³νλ²
- λΆμ€νΈμ»¨νΌλ°μ€
- icecandidate
- React
- κ³Όμ ν μ€νΈ
- μλ°©ν₯ μ°κ²° 리μ€νΈ
- TypeScript
- μ΄λΆνμ
- μΉ΄μΉ΄μ€μ±μ©
- μλ°μ€ν¬λ¦½νΈ
- Today
- Total
π₯ dev-ruby
[λ°±μ€] ν΄μ¬ - silver3 | node.js | λ€μ΄λλ―Ή νλ‘κ·Έλλ° | λΈλ£¨νΈν¬μ€ λ³Έλ¬Έ
[λ°±μ€] ν΄μ¬ - silver3 | node.js | λ€μ΄λλ―Ή νλ‘κ·Έλλ° | λΈλ£¨νΈν¬μ€
ruby_s 2022. 3. 20. 23:09μλ΄μμΌλ‘ μΌνκ³ μλ λ°±μ€μ΄λ ν΄μ¬λ₯Ό νλ €κ³ νλ€.
μ€λλΆν° N+1μΌμ§Έ λλ λ ν΄μ¬λ₯Ό νκΈ° μν΄μ, λ¨μ NμΌ λμ μ΅λν λ§μ μλ΄μ νλ €κ³ νλ€.
λ°±μ€μ΄λ λΉμμκ² μ΅λν λ§μ μλ΄μ μ‘μΌλΌκ³ λΆνμ νκ³ , λΉμλ ν루μ νλμ© μλ‘ λ€λ₯Έ μ¬λμ μλ΄μ μ‘μλμλ€.
κ°κ°μ μλ΄μ μλ΄μ μλ£νλλ° κ±Έλ¦¬λ κΈ°κ° Tiμ μλ΄μ νμ λ λ°μ μ μλ κΈμ‘ Piλ‘ μ΄λ£¨μ΄μ Έ μλ€.
N = 7μΈ κ²½μ°μ λ€μκ³Ό κ°μ μλ΄ μΌμ νλ₯Ό 보μ.
1μΌ | 2μΌ | 3μΌ | 4μΌ | 5μΌ | 6μΌ | 7μΌ | |
Ti | 3 | 5 | 1 | 1 | 2 | 4 | 2 |
Pi | 10 | 20 | 10 | 20 | 15 | 40 | 200 |
1μΌμ μ‘νμλ μλ΄μ μ΄ 3μΌμ΄ 걸리며, μλ΄νμ λ λ°μ μ μλ κΈμ‘μ 10μ΄λ€. 5μΌμ μ‘νμλ μλ΄μ μ΄ 2μΌμ΄ 걸리며, λ°μ μ μλ κΈμ‘μ 15μ΄λ€.
μλ΄μ νλλ° νμν κΈ°κ°μ 1μΌλ³΄λ€ ν΄ μ μκΈ° λλ¬Έμ, λͺ¨λ μλ΄μ ν μλ μλ€. μλ₯Ό λ€μ΄μ 1μΌμ μλ΄μ νκ² λλ©΄, 2μΌ, 3μΌμ μλ μλ΄μ ν μ μκ² λλ€. 2μΌμ μλ μλ΄μ νκ² λλ©΄, 3, 4, 5, 6μΌμ μ‘νμλ μλ΄μ ν μ μλ€.
λν, N+1μΌμ§Έμλ νμ¬μ μκΈ° λλ¬Έμ, 6, 7μΌμ μλ μλ΄μ ν μ μλ€.
ν΄μ¬ μ μ ν μ μλ μλ΄μ μ΅λ μ΄μ΅μ 1μΌ, 4μΌ, 5μΌμ μλ μλ΄μ νλ κ²μ΄λ©°, μ΄λμ μ΄μ΅μ 10+20+15=45μ΄λ€.
μλ΄μ μ μ ν νμ λ, λ°±μ€μ΄κ° μ»μ μ μλ μ΅λ μμ΅μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ N (1 ≤ N ≤ 15)μ΄ μ£Όμ΄μ§λ€.
λμ§Έ μ€λΆν° Nκ°μ μ€μ Tiμ Piκ° κ³΅λ°±μΌλ‘ ꡬλΆλμ΄μ μ£Όμ΄μ§λ©°, 1μΌλΆν° NμΌκΉμ§ μμλλ‘ μ£Όμ΄μ§λ€. (1 ≤ Ti ≤ 5, 1 ≤ Pi ≤ 1,000)
μΆλ ₯
첫째 μ€μ λ°±μ€μ΄κ° μ»μ μ μλ μ΅λ μ΄μ΅μ μΆλ ₯νλ€.
μμ μ λ ₯ 1
7
3 10
5 20
1 10
1 20
2 15
4 40
2 200
μμ μΆλ ₯ 1
45
μμ μ λ ₯ 2
10
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
μμ μΆλ ₯ 2
55
μμ μ λ ₯ 3
10
5 10
5 9
5 8
5 7
5 6
5 10
5 9
5 8
5 7
5 6
μμ μΆλ ₯ 3
20
μμ μ λ ₯ 4
10
5 50
4 40
3 30
2 20
1 10
1 10
2 20
3 30
4 40
5 50
μμ μΆλ ₯ 4
90
λ΄κ° νΌ νμ΄
function solve(){
const dp = Array.from({ length: N+1 },() => 0);
let max = 0;
for(let i = 0; i < N; i++){
const [t, p] = consult[i];
max = Math.max(max, dp[i]);
if(i + t <= N){
dp[i+t] = Math.max(dp[i+t], max + p);
}
}
return Math.max(...dp);
}
const filePath = process.platform === 'linux'? '/dev/stdin' : 'λ°±μ€/silver/14501/testcase.txt';
const input = require('fs').readFileSync(filePath).toString().trim().split('\n');
const N = +input[0];
const consult = input.slice(1).map((date)=> date.split(' ').map(Number));
console.log(solve());
νμ¬ λ μ§ iμμ 걸리λ μκ°μΈ tλ§νΌ κ° κ³³μ μ΅λκ°μ λ°μν΄μ£Όλ λ°©μμΌλ‘ νμλ€.
κΈ°μ‘΄μ μ μ₯λμ΄ μλ κ°(dp[i+t])κ³Ό νμ¬μ μ΅λκ° + νμ¬μ μ΄λ κ°(max + p)μ λΉκ΅νμ¬ μ΅λκ°μΌλ‘ λ°μν΄μ€λ€.
if(i + t <= N) : νμ¬ λ μ§(i)μμ tλ§νΌ κ°μλ ν΄μ¬ κΈ°κ°μ΄ λμΌλ©΄ νλ¨νμ§ μμ