-
문제
접근법
기존에 단어 뒤집기에 이은 후속작이다.
이번은 저번과 다르게 1개의 문자열을 뒤집어 주는 것을 목표로 하는데, 단 < > 안에 들어 있는 내용은 뒤집지 않는다.
그렇기 때문에, isTag 라는 플래그를 사용하여 문제를 해결 하였다.
1.
"<" 앞에 단어가 있는 경우는 태그 바깥에 있는 문자열이 존재하는 것이기에, 뒤집은 다음에 <를 추가해준다.
2.
띄어쓰기를 사용하는 경우에도, isTag === False 라면 즉, 태그가 닫혀 있는 경우라면 태그 바깥에 존재하는 경우이기에 이를 반대로 출력 해준다.
3.
마지막으로 < > 다음이 아닌 어떤 상황에서 나온 단어도 태그 바깥에 존재하기에 뒤집어서 출력 해야한다.
코드
let input = require("fs").readFileSync("/dev/stdin", "utf8"), temp = "", isTag = false, ans = ""; for (let a of input) { if (a === "<") { isTag = true; ans += temp.split("").reverse.join("") + a; temp = ""; } else if (a === ">") { isTag = false; ans += temp + a; temp = ""; } else if (a === " ") { ans += (!isTag ? temp.split("").reverse().join("") : temp) + " "; temp = ""; } else { temp += a; } } console.log((ans + temp.split("").reverse().join("")).replace(/\n/g, ""));
문제를 풀면서 배우고 느낀점
문제를 풀면서 배운 점은, 하나의 문자열을 검색 할 때도 Array.from 을 사용하는 방식과 같이 문자열을 나누어 검사를 진행 하였는데,
위에서 작성한 코드와 같은 방식으로 처리 할 수 있음을 배울 수 있었다.
자바스크립트가 불편하고 좋지가 않은 알고리즘 언어라고만 생각했는데, 익숙해짐에 따라 보이는 장점도 있는 것 같다 :D
'PS > 백준' 카테고리의 다른 글
[백준_1934] 최소공배수 (by using javascript) (0) 2021.04.05 [ 백준_10799 ] 쇠막대기 ( Stack, by using javascript ) (0) 2021.04.02 [백준_1874] 스택수열 (0) 2021.03.31 [백준] 1260 DFS와 BFS (0) 2021.03.23 [완전탐색(BruteForce)] 백준 1018 체스판 칠하기 ( by node js ) (0) 2021.03.16 댓글