❗ 풀이
const input = require('fs').readFileSync('dev/stdin').toString().trim();
let isTag = false;
let result = '';
let currentWord = '';
for (let i = 0; i < input.length; i++) {
const char = input[i];
if (char === '<') {
isTag = true;
result += currentWord.split('').reverse().join('') + '<';
currentWord = '';
} else if (char === '>') {
isTag = false;
result += '>';
} else if (isTag) {
result += char;
} else {
if (char === ' ') {
result += currentWord.split('').reverse().join('') + ' ';
currentWord = '';
} else {
currentWord += char;
}
}
}
result += currentWord.split('').reverse().join('');
console.log(result);
- char 변수가 '<' 일 때, isTag 값을 true로 바꾸고, 현재까지 만든 문자열 currentWord를 역순으로 뒤집어서 result에 추가하고 currentWord 변수를 빈 문자열로 초기화
- char 변수가 '>' 일 때, isTag 값을 false로 변경 후 태그 내부의 문자열이므로 그대로 result에 추가
- isTag 값이 true일 때는 태그 내부이므로 result에 그대로 char를 추가
- isTag 값이 false일 때는 태그 외부이므로, currentWord에 char를 추가
- char가 공백일 때는 현재까지 만든 문자열을 역순으로 뒤집어서 result에 추가하고, currentWord 변수를 빈 문자열로 초기화
- 태그가 닫히지 않은 경우엔 반복문이 끝나고 currentWord를 역순으로 뒤집어서 result에 추가
- result 변수에 저장된 문자열을 출력
'알고리즘 풀이' 카테고리의 다른 글
[JAVASCRIPT] 백준 4659번 문제 풀이 (0) | 2023.05.26 |
---|---|
[JAVASCRIPT] 백준 1213번 문제 풀이 (0) | 2023.04.22 |
[JAVASCRIPT] 백준 11655번 문제 풀이 (1) | 2023.04.17 |
[JAVASCRIPT] 백준 10820번 문제 풀이 (0) | 2023.04.15 |
[JAVASCRIPT] 백준 1212번 문제 풀이 (0) | 2023.04.13 |