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));
}
}
'๊ฐ์ธ๊ณต๋ถ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค][Node.js] 5532๋ฒ : ๋ฐฉํ ์์ (0) | 2021.11.17 |
---|---|
[๋ฐฑ์ค][Node.js] 5522๋ฒ : ์นด๋ ๊ฒ์ (0) | 2021.11.16 |
[๋ฐฑ์ค][Node.js] 5361๋ฒ : ์ ํฌ ๋๋ก์ด๋ ๊ฐ๊ฒฉ (0) | 2021.11.14 |
[๋ฐฑ์ค][Node.js] 5355๋ฒ : ํ์ฑ ์ํ (0) | 2021.11.13 |
[๋ฐฑ์ค][Node.js] 5339๋ฒ : ์ฝ์ผํฐ (0) | 2021.11.12 |
๋๊ธ