[백준] 16120 PPAP - javascript

Yongwoo Cho·2021년 11월 1일
0

알고리즘

목록 보기
37/104

📌 문제

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

📌 풀이

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

let str = input[0];

let stack = [];
for (let i = 0; i < str.length; i++) {
  if (str[i] === "P") {
    if (
      stack.length > 2 &&
      stack[stack.length - 1] === "A" &&
      stack[stack.length - 2] === "P" &&
      stack[stack.length - 3] === "P"
    ) {
      stack.pop();
      stack.pop();
      stack.pop();
    }
    stack.push("P");
  } else {
    stack.push(str[i]);
  }
}
if (stack.length === 1 && stack[stack.length - 1] === "P") console.log("PPAP");
else console.log("NP");

✔ 알고리즘 : 스택

✔ 문자열을 스택에 입력받고 P를 입력받았을 때 현재의 P가 PPAP의 마지막 P인지 확인하고 마지막 P이면 PPAP를 P로 바꾸어 스택에 넣어준다

✔ 마지막 스택의 원소수가 1이고 그 원소가 P인 경우 PPAP문자열이다

✔ 난이도 : 백준 기준 골드4

profile
Frontend 개발자입니다 😎

0개의 댓글