๋ฐฑ์ค 17413๋ฒ
์ฝ๋
๐ ์ฒ์์ findWord ํจ์์์ ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
let word = [...input].splice(start, end - start + 1).reverse(); for (let i = 0; i < word.length; i++) { input[start + i] = word[i]; }
๐ ๋ค๋ฅธ ๋ถ๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ tagํ๋ณ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ์ ๊ท์์ ์ฌ์ฉํ๊ณ ์์๋ค.
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('');
const findWord = (start) => {
let end = start + 1;
while (
input[end] !== "<" &&
input[end] !== " " &&
end !== input.length
) {
end++;
}
end = end - 1;
for (let i = 0; i < Math.floor((end - start + 1) / 2); i++) {
const temp = input[start + i];
input[start + i] = input[end - i];
input[end - i] = temp;
}
return end;
};
const findEndTag = (start) => {
let end = start + 1;
while (input[end] !== ">") {
end++;
}
return end;
};
for (let i = 0; i < input.length; i++) {
if (input[i] === "<") {
i = findEndTag(i);
} else if (input[i] === " ") {
continue;
} else {
i = findWord(i);
}
}
console.log(input.join(''));