본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 1343/javascript] 폴리오미노

by tokkiC 2022. 10. 19.

카카오 데이터 센터 화재로 인해 뒤늦게 올리는 중...

문자열 구현 문제이다

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

 

1343번: 폴리오미노

첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.

www.acmicpc.net

let input = [];

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.on("line", (line) => {
  input.push(line);
});

readline.on("close", () => {
  solution(input);
  process.exit();
});

const solution = (inp) => {
  let ori = inp[0];
  let xcnt = 0;
  let ans = [];
  for (let i = 0; i < ori.length; i++) {
    if (ori[i] === ".") {
      ans.push(".");
      continue;
    } else if ((ori[i] !== "." && ori[i + 1] === ".") || i + 1 === ori.length) {
      xcnt++;

      let ar = "AAAA";
      let br = "BB";
      let part = "";
      if (xcnt % 2 !== 0) {
        return console.log(-1);
      } else {
        if (xcnt % 4 === 0) {
          ans.push(ar.repeat(xcnt / 4));
        } else {
          part += ar.repeat((xcnt - 2) / 4);
          part += br;
          ans.push(part);
        }
      }

      xcnt = 0;
      continue;
    } else {
      xcnt++;
    }
  }
  console.log(ans.join(""));
};

댓글