[백준] 17413번 : 단어 뒤집기2 (node.js)

Jo Chang Uk·2024년 5월 27일

1. 문제

문제 링크

2. 풀이

2.1 문자열 내장 함수를 사용해서 뒤집기

function reverseString(word) {
  return word.split("").reverse().join("");
}

2.2 문자열 반복문으로 뒤집기

function reverseString(str) {
    var newString = "";
    for (var i = str.length - 1; i >= 0; i--) {
        newString += str[i];
    }
    return newString;
}

2.3 제출 코드

var fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().trim();

function reverseString(word) {
  return word.split("").reverse().join("");
}

function solution(s) {
  let stack = [];
  let word = [];
  let words = [];
  for (let x of s) {
    if (stack.length) {
      // 괄호 안일 때
      stack.push(x);
      if (x === ">") {
        words.push(stack.join(""));
        stack = [];
      }
    } else {
      // 괄호 밖일 때
      if (x === "<") {
        stack.push(x);
        // 앞에서 단어를 저장 했을 경우
        if (word.length) {
          words.push(word.join(""));
          word = [];
        }
      } else {
        word.push(x);
      }
    }
  }

  // input이 ">"가 마지막이 아닐경우 남아있는 단어 push
  if (word.length) {
    words.push(word.join(""));
  }

  let result = "";

  for (let x of words) {
    // 괄호로 시작하는 경우 그대로 저장
    if (x[0] === "<") {
      result += x;
    } else {
      // 괄호가 아닐 때 단어 단위로 쪼갠 뒤 뒤집은뒤 단어 사이 띄어서 저장
      result += x
        .split(" ")
        .map((word) => reverseString(word))
        .join(" ");
    }
  }
  console.log(result);
}

solution(input);

0개의 댓글