[λ°±μ€][Node.js] 2455λ² : μ§λ₯ν κΈ°μ°¨
Algorithm
- μ§λ₯ν κΈ°μ°¨ -
λ¬Έμ
μ΅κ·Όμ κ°λ°λ μ§λ₯ν κΈ°μ°¨κ° 1λ²μ(μΆλ°μ)λΆν° 4λ²μ(μ’ μ°©μ)κΉμ§ 4κ°μ μ μ°¨μμ΄ μλ λ Έμ μμ μ΄νλκ³ μλ€. μ΄ κΈ°μ°¨μλ νκ±°λ λ΄λ¦¬λ μ¬λ μλ₯Ό μλμΌλ‘ μΈμν μ μλ μ₯μΉκ° μλ€. μ΄ μ₯μΉλ₯Ό μ΄μ©νμ¬ μΆλ°μμμ μ’ μ°©μκΉμ§ κ°λ λμ€ κΈ°μ°¨ μμ μ¬λμ΄ κ°μ₯ λ§μ λμ μ¬λ μλ₯Ό κ³μ°νλ €κ³ νλ€. λ¨, μ΄ κΈ°μ°¨λ₯Ό μ΄μ©νλ μ¬λλ€μ μ§μ μμμ΄ ν¬μ² νμ¬, μμμ κΈ°μ°¨μ ν λ, λ΄λ¦΄ μ¬λμ΄ λͺ¨λ λ΄λ¦° νμ κΈ°μ°¨μ νλ€κ³ κ°μ νλ€.
λ΄λ¦° μ¬λ μ | ν μ¬λ μ | |
1λ²μ(μΆλ°μ) | 0 | 32 |
2λ²μ | 3 | 13 |
3λ²μ | 28 | 25 |
4λ²μ(μ’ μ°©μ) | 39 | 0 |
μλ₯Ό λ€μ΄, μμ κ°μ κ²½μ°λ₯Ό μ΄ν΄λ³΄μ. μ΄ κ²½μ°, κΈ°μ°¨ μμ μ¬λμ΄ κ°μ₯ λ§μ λλ 2λ²μμμ 3λͺ μ μ¬λμ΄ κΈ°μ°¨μμ λ΄λ¦¬κ³ , 13λͺ μ μ¬λμ΄ κΈ°μ°¨μ νμ λλ‘, μ΄ 42λͺ μ μ¬λμ΄ κΈ°μ°¨ μμ μλ€.
μ΄ κΈ°μ°¨λ λ€μ 쑰건μ λ§μ‘±νλ©΄μ μ΄νλλ€κ³ κ°μ νλ€.
- κΈ°μ°¨λ μ λ²νΈ μμλλ‘ μ΄ννλ€.
- μΆλ°μμμ λ΄λ¦° μ¬λ μμ μ’ μ°©μμμ ν μ¬λ μλ 0μ΄λ€.
- κ° μμμ νμ¬ κΈ°μ°¨μ μλ μ¬λλ³΄λ€ λ λ§μ μ¬λμ΄ λ΄λ¦¬λ κ²½μ°λ μλ€.
- κΈ°μ°¨μ μ μμ μ΅λ 10,000λͺ μ΄κ³ , μ μμ μ΄κ³Όνμ¬ νλ κ²½μ°λ μλ€.
4κ°μ μμ λν΄ κΈ°μ°¨μμ λ΄λ¦° μ¬λ μμ ν μ¬λ μκ° μ£Όμ΄μ‘μ λ, κΈ°μ°¨μ μ¬λμ΄ κ°μ₯ λ§μ λμ μ¬λ μλ₯Ό κ³μ°νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
κ° μμμ λ΄λ¦° μ¬λ μμ ν μ¬λ μκ° λΉμΉΈμ μ¬μ΄μ λκ³ μ²«μ§Έ μ€λΆν° λ·μ§Έ μ€κΉμ§ μ μμλλ‘ ν μ€μ νλμ© μ£Όμ΄μ§λ€.
μ μΆλ ₯ μμ
λ¬Έμ νκΈ°
let fs = require("fs");
let input = fs.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n")
.map((el) => el.split(" ").map((el) => Number(el)));
let result = [];
for (let i = 0; i < input.length; i++) {
if (result.length === 0) {
result.push(input[i][1]);
} else {
result.push(result[result.length - 1] - input[i][0] + input[i][1]);
}
}
console.log(Math.max(...result));