캐또's coding

1181 - 단어 정렬 - node.js 본문

기초 공부/백준 문제 풀이

1181 - 단어 정렬 - node.js

JS_K_coding 2023. 1. 13. 09:07

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

 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net


const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
//파일 가져오기 이번에는 변형을 하기 위해 let으로 할당한다

input.shift();
//shift를 이용해서 첫 줄의 갯수를 날려준다

input = Array.from(new Set(input));
//Set을 이용해 중복값을 먼저 날려준다

let result = [];
//결과를 출력하기 위해 빈 배열을 할당해준다

let sort = input.sort((a, b) => {
  if (a.length !== b.length) {
    return a.length - b.length;
  }
});
for (let i = 1; i <= sort[sort.length - 1].length; i++) {
  let tm = sort.filter((el) => el.length === i);
  result.push(...tm.sort());
}
//정렬을 우선 진행한 뒤
//같은 길이들에서 사전순서대로 정렬한다
//결과를 result배열에 넣어준다

console.log(result.join("\n"));
//줄바꿈을 넣어서 출력하면 해결
Comments