https://www.acmicpc.net/problem/5430
5430번: AC
각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.
www.acmicpc.net
📌 작성한 코드
// 5430
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "Beakjoon/Gold/test.txt";
let input = fs.readFileSync(filePath).toString().trim().split("\n");
const N = Number(input[0]);
for (let i = 1; i <= N * 3; i += 3) {
const commands = input[i].split("");
const n = Number(input[i + 1]);
const temp = input[i + 2].slice(1, -1);
const list = temp === "" ? [] : temp.split(",").map(Number);
let front = 0;
let back = list.length - 1;
let flag = true;
let isError = false;
for (let j = 0; j < commands.length; j++) {
if (commands[j] === "R") {
let temp = front;
front = back;
back = temp;
flag = !flag;
}
if (commands[j] === "D") {
if (flag) {
front++;
} else {
front--;
}
}
if (flag && front - 1 > back) {
isError = true;
break;
}
if (!flag && front < back - 1) {
isError = true;
break;
}
}
if (isError) {
console.log("error");
} else {
let answer = [];
if (list.length) {
if (flag) {
for (let k = front; k <= back; k++) {
answer.push(list[k]);
}
}
if (!flag) {
for (let k = front; k >= back; k--) {
answer.push(list[k]);
}
}
}
console.log(`[${answer.join(",")}]`);
}
}
📌 풀이

📌 테스트케이스
- 제공되는 테스트 케이스로 안잡히는 부분들이 많아서 해당 테스트 케이스 사용해서 틀리는 이유 확인해보면 좋다.
https://www.acmicpc.net/board/view/122205
✅ 성공
엣지케이스 예외 처리할 부분이 생각보다 많아서 풀다가 싹 지우고 다시 풀었던 문제.. 풀고나서 기뻐서 소리질렀다.

'알고리즘 > 백준' 카테고리의 다른 글
| [JavaScript/Stack] 백준 실버 4 : 3986 - 좋은 단어 (0) | 2024.01.23 |
|---|---|
| [JavaScript/Stack] 백준 실버 4 : 4949 - 균형잡힌 세상 (0) | 2024.01.23 |
| [JavaScript/Queue] 백준 실버 3 : 1021 - 회전하는 큐 (0) | 2024.01.23 |
| [JavaScript/Deque] 백준 실버 4 : 10866 - 덱 (0) | 2024.01.23 |
| [JavaScript/Queue] 백준 실버 4 : 2164 - 카드 2 (0) | 2024.01.22 |