백준 1181번 JavaScript

yj j·2023년 12월 14일
0

백준 1181번 node.js 해결

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');

const count = Number(input[0]);
let mySet = new Set();
let arr = [];
for(let i = 1 ; i <= count ; i += 1 ){
  //중복 제거를 위해 set에 입력
  mySet.add(input[i].trim());
}
//중복 제거하고 배열에 기록
arr.push(...mySet);

arr.sort((a, b) => {
  //문자열의 길이 비교 
  if(a.length !== b.length) return a.length - b.length;
  //문자열 길이가 같으면 비교 연산자로 사전 순으로 비교
  else return a > b ? 1 : -1;
})

let result = [];
for(let j = 0 ; j < arr.length ; j += 1 ){
  result += arr[j] + '\n';
}
console.log(result);

Set은 중복을 허용하지 않는 값을 모아 놓은 집합입니다.
배열에서도 중복 제거를 충분히 할 수 있지만, Set이 순회가 빠르고 효율적이기 때문에 문제를 풀 때 종종 이용하게 됩니다.

Set으로 중복을 제거 후 다시 배열에 담아 정렬을 해주면 됩니다.

profile
꿈꾸는 사람

0개의 댓글

관련 채용 정보