๋ฐฑ์ค€[node.js] > 5430๋ฒˆ AC

2025. 1. 7. 23:32ยท๐Ÿ”’Algorithm

๋ฌธ์ œ๋งํฌ

https://www.acmicpc.net/problem/5430

๋ฌธ์ œํ’€์ด

R ์—ฐ์‚ฐ์„ ํ•ด์•ผํ•  ์‹œ ์‹ค์ œ ๋ฐฐ์—ด์„ ์•ž๋’ค๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๊ณ„์‚ฐ์†๋„ ์ฐจ์›์—์„œ ํšจ์œจ์ ์ด์ง€ ๋ชปํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์›๋ณธ ๋ฐฐ์—ด์˜ ์›์†Œ์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๊ธฐ ๋ณด๋‹ค๋Š” ์•ž์—์„œ ์›์†Œ๋ฅผ ์ œ๊ฑฐ or ๋’ค์—์„œ ์›์†Œ๋ฅผ ์ œ๊ฑฐ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ์‹œ๊ฐ„์ดˆ๊ณผ ์—†์ด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋Š” direction ์ด๋ผ๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉํ–ฅ์„ ํŒŒ์•…ํ•˜์—ฌ ์ด๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๋ฌธ์ œ๋ฅผ ๋‹ค ํ’€๊ณ ๋‚˜์„œ ๋ณด๋‹ˆ ํ’€์ด๊ฐ€ ๊ฝค๋‚˜ ๊ธด๊ฑฐ ๊ฐ™์€๋ฐ ์ถ”ํ›„ ์‹œ๊ฐ„๋‚˜๋ฉด ์ค„์—ฌ๋ด์•ผ๊ฒ ๋‹ค. ( ๋‹ค๋ฅธ์‚ฌ๋žŒํ’€์ด : https://tesseractjh.tistory.com/250 )

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");

let testCaseCnt = Number(input.shift());

let answer = "";

for (let i = 0; i < input.length; i += 3) {
    let isError = false;
    let direction = "left";
    let commendArr = input[i].split("");

    let numCnt = Number(input[i + 1]);
    let numArr = input[i + 2];

    // ๋ฐฐ์—ด์ด ์• ์ดˆ์— ๋น„์–ด์žˆ๋Š” ๊ฒฝ์šฐ
    if (numCnt === 0) {
        if (commendArr.includes("D")) {
            answer += "error\n";
        } else {
            answer += "[]\n";
        }
        continue;
    }

    // ์–‘์‚ฌ์ด๋“œ [] ์‚ญ์ œ ํ›„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ฌ
    numArr = numArr.slice(1, numArr.length - 1);
    numArr = numArr.split(",").map((n) => Number(n));

    for (let j = 0; j <= commendArr.length - 1; ++j) {
        let commend = commendArr[j];
        if (commend === "R") {
            // ๋’ค์ง‘๊ธฐ
            direction = direction === "left" ? "right" : "left";
        } else if (commend === "D") {
            if (numArr.length === 0) {
                isError = true;
                break;
            }

            if (direction === "left") {
                numArr.shift();
            } else if (direction === "right") {
                numArr.pop();
            }
        }
    }

    if (isError) {
        answer += "error\n";
    } else {
        if (direction === "left") {
            answer += `[${numArr.join(",")}]\n`;
        } else if (direction === "right") {
            answer += `[${numArr.reverse().join(",")}]\n`;
        }
    }
}

console.log(answer);

 

 

'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฐฑ์ค€[JS] > 7762๋ฒˆ ์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ  (0) 2025.01.12
๋ฐฑ์ค€[node.js] > 1931๋ฒˆ  (0) 2025.01.09
๋ฐฑ์ค€[node.js] > 9461๋ฒˆ ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด  (0) 2025.01.05
๋ฐฑ์ค€[node.js] > 11399๋ฒˆ ATM  (0) 2025.01.02
๋ฐฑ์ค€[node.js] > 11279๋ฒˆ ์ตœ๋Œ€ ํž™  (0) 2024.12.31
'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ๋ฐฑ์ค€[JS] > 7762๋ฒˆ ์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ
  • ๋ฐฑ์ค€[node.js] > 1931๋ฒˆ
  • ๋ฐฑ์ค€[node.js] > 9461๋ฒˆ ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด
  • ๋ฐฑ์ค€[node.js] > 11399๋ฒˆ ATM
devWarrior
devWarrior
  • devWarrior
    devWarrior
    devWarrior
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸงฉDev (263)
      • โญFE (34)
      • ๐Ÿ”’Algorithm (155)
      • โž•Etc. (11)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
    • ๊ด€๋ฆฌ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Easy
    ๊ทธ๋ฆฌ๋””
    ์‹ค๋ฒ„3
    DFS
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์ฝ”ํ…Œ
    BFS
    ์‹ค๋ฒ„1
    FE
    react
    js
    ์ž์Šค
    Lv2
    leetcode
    ์‹ค๋ฒ„2
    ๋ฐฑ์ค€
    javascript
    dp
    ๊ณจ๋“œ5
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ์‹ค๋ฒ„4
    Algorithm
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    node.js
    ํ”„๋ก ํŠธ์—”๋“œ
    nodejs
    ๊ตฌํ˜„
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ์˜ค๋ธ”์™„
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
devWarrior
๋ฐฑ์ค€[node.js] > 5430๋ฒˆ AC
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”