문제 번호 : 1181번
문제 바로가기 ☞ https://www.acmicpc.net/problem/1181
<<< 문제 내용 >>>
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('\r\n');
input.shift();
let arr = [...new Set(input)].sort((a, b) => a.length - b.length || a.localeCompare(b));
console.log(arr.join('\n'));
[배운 점]
- 고민 끝에 답을 찾아보았는데, localeCompare라는 함수가 있었다. 사전적으로 정렬을 해주는 것이다.
그 외에도 미리 input에 split으로 자른 값들을 ...new Set을 통해 한번에 중복제거하면서 자료에 담을 수 있었다.
sort는 다들 알겠지만 (a, b) => a - b 의 경우에는 오름차순, b - a 의 경우에는 내림차순이다.
길이를 통해서 오름차순으로 정렬한 것을 사전적으로 또 정렬하는 방식인 것으로 해석했다.
도움이 되셨다면 공감 부탁드립니다.