๐ŸŽฒ ๋ฐฑ์ค€ 5430๋ฒˆ AC

Jeongeunยท2024๋…„ 2์›” 17์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
169/187

๐Ÿ“ฃ ๋ฌธ์ œ

๐ŸŽจ ๋ฐ˜๋ก€
๐Ÿ’Š shift๋ฅผ ์“ฐ๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ ๊นŒ๋ด ์ธ๋ฑ์Šค๋กœ ํ•ด์ฃผ์—ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ shift, pop์œผ๋กœ ํ’€์–ด์ฃผ์–ด๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™๋‹ค.
๐Ÿ’Š ์กฐ๊ฑด๋“ค์„ ์ž˜ ์„ค์ •ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค...!

์ฝ”๋“œ

const fs = require('fs'); 
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const test = +input.shift();
let answer = "";

for (let i = 0; i < test; i++) {
  const func = input[i * 3 + 0];
  const len = +input[i * 3 + 1];
  const arr = JSON.parse(input[i * 3 + 2]);
  let front = 0;
  let rear = len - 1;
  let zero = false;
  let error = false;

  for (let j = 0; j < func.length; j++) {
    if (func[j] === "R") {
      const temp = front;
      front = rear;
      rear = temp;
    } else {
      if (len === 0 || zero) {//๊ธธ์ด๊ฐ€ 0์ผ ๋•Œ, D๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ
        error = true;
        break;
      }

      if (front < rear) front++;
      else if (front > rear) front--;
      else zero = true; //๊ธธ์ด๊ฐ€ 0์ด ๋จ
    }
  }

  if (error) {
    answer += "error\n";
    continue;
  }
  if (zero) {
    answer += "[]\n";
    continue;
  }
  if (front <= rear) answer += `[${arr.splice(front, rear - front + 1)}]\n`;
  else if (front > rear)
    answer += `[${arr.splice(rear, front - rear + 1).reverse()}]\n`;
}

console.log(answer);

0๊ฐœ์˜ ๋Œ“๊ธ€