본문 바로가기

자료구조+알고리즘/BOJ

[BOJ-17413_silver3] 단어 뒤집기2 (javascript)

https://www.acmicpc.net/problem/17413

 

17413번: 단어 뒤집기 2

문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('<', '>')로만 이루어져

www.acmicpc.net

 

[문제 유형]

- 구현

- 자료 구조

- 문자열

- 스택

 

 

 

 

[풀이]

 

문자열 뒤집기

여기서 예외는 <><> 태그 안에 있는 문자열은 뒤집지 않는다.

 

< temp에 넣을 곳 >

<이 오면 앞의 temp 들 뒤집어서 ans 에 담아줌

temp 에 있는 데이터 ans 에 담을때 temp 는 비워주기

-> 하나하나 케이스 그려보면서 해보면 이해됨!

 

 

[코드 풀이]

 

const fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split('');

isTag = false;
ans = "";
temp = "";

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, ""));
728x90
반응형