[λ°±μ€][Node.js] 5430λ² : AC
Algorithm
- AC -
λ¬Έμ
μ μμ΄λ μ£Όλ§μ ν μΌμ΄ μμ΄μ μλ‘μ΄ μΈμ΄ ACλ₯Ό λ§λ€μλ€.
ACλ μ μ λ°°μ΄μ μ°μ°μ νκΈ° μν΄ λ§λ μΈμ΄μ΄λ€.
μ΄ μΈμ΄μλ λ κ°μ§ ν¨μ R(λ€μ§κΈ°)κ³Ό D(λ²λ¦¬κΈ°)κ° μλ€.
ν¨μ Rμ λ°°μ΄μ μλ μ«μμ μμλ₯Ό λ€μ§λ ν¨μμ΄κ³ , Dλ 첫 λ²μ§Έ μ«μλ₯Ό λ²λ¦¬λ ν¨μμ΄λ€.
λ°°μ΄μ΄ λΉμ΄μλλ° Dλ₯Ό μ¬μ©ν κ²½μ°μλ μλ¬κ° λ°μνλ€.
ν¨μλ μ‘°ν©ν΄μ ν λ²μ μ¬μ©ν μ μλ€.
μλ₯Ό λ€μ΄, "AB"λ Aλ₯Ό μνν λ€μμ λ°λ‘ μ΄μ΄μ Bλ₯Ό μννλ ν¨μμ΄λ€.
μλ₯Ό λ€μ΄, "RDD"λ λ°°μ΄μ λ€μ§μ λ€μ μ²μ λ μ«μλ₯Ό λ²λ¦¬λ ν¨μμ΄λ€.
λ°°μ΄μ μ΄κΈ°κ°κ³Ό μνν ν¨μκ° μ£Όμ΄μ‘μ λ, μ΅μ’ κ²°κ³Όλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ μΆλ ₯ μμ
λ¬Έμ νκΈ°
let fs = require("fs");
let input = fs.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
input.shift();
for (let i = 0; i < input.length; i += 3) {
let mission = input[i].split("");
let arr = JSON.parse(input[i + 2]);
let isError = false;
let isChange = false;
for (let j = 0; j < mission.length; j++) {
if (mission[j] === "R") isChange = !isChange;
else if (mission[j] === "D") {
if (arr.length > 0) {
if (isChange) arr.pop();
else arr.shift();
} else {
isError = !isError;
break;
}
}
}
if (isError) console.log("error");
else {
if (isChange) console.log(JSON.stringify(arr.reverse()));
else console.log(JSON.stringify(arr));
}
}