백준 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으로 중복을 제거 후 다시 배열에 담아 정렬을 해주면 됩니다.