[boj] 20291. 파일 정리 (node.js)

호이·2022년 1월 27일
0

algorithm

목록 보기
6/77
post-thumbnail

문제 요약

파일명과 확장자가 여러 개 주어질 때, 확장자와 그 개수를 세고, 확장자를 기준으로 정렬한 결과를 출력하라

풀이

내 풀이

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

let input = [];
rl.on("line", function (line) {
  input.push(line);
}).on("close", function () {
  const [N, ...files] = input;
  const fileName = files.map((file) => file.split(".")[1]);

  let prevName = undefined;
  let count = 0;
  let str = "";

  fileName.sort();
  fileName.forEach((name, idx) => {
    if (name == prevName) {
      count++;
      if (idx == fileName.length - 1) {
        str += prevName + " " + count + "\n";
      }
    } else {
      if (idx != 0) str += prevName + " " + count + "\n";
      count = 1;
      prevName = name;
      if (idx == fileName.length - 1) str += prevName + " " + count + "\n";
    }
  });
  console.log(str);
  process.exit();
});

구조

  • 입력값에서 확장자만 떼어서 확장자 순차적으로 정렬
  • 정렬된 상태를 활용, 개수 세어 출력

  • readline 모듈 사용해야 풀 수 있고
  • str += 로 마지막에 콘솔 찍어야 한다.

주절주절

node.js는 시간 초과에 매우 취약하다...!!! 까다롭게 고민하고 웬만하면 console은 한 방에 모아서 출력하기

profile
매일 부활하는 개복치

0개의 댓글