[javascript] 백준 1406번 에디터

bjyyyyy·2022년 12월 18일
0

문제보기

let input = fs.readFileSync(filePath).toString().trim().split("\n");

const number = input[1];
const command = input.slice(2, input.length).map((item) => item.split(" "));

let left = input[0].split("");
let right = [];

for (let i = 0; i < number; i++) {
    const [cmd, word] = command[i];
    if (cmd === "L" && left.length) {
        right.push(left.pop());
    }
    if (cmd === "D" && right.length) {
        left.push(right.pop());
    }
    if (cmd === "B") {
        left.pop();
    }
    if (cmd === "P") {
        left.push(word);
    }
}

console.log([...left, ...right.reverse()].join(""));

풀이
2개의 스택을 이용하여 커서를 구현
커서의 위치를 기준으로 left, right 스택으로 구분한다
right 스택은 마지막에 reverse를 통해 뒤집어준 후에 출력한다.

0개의 댓글