const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim()
.split('\n').slice(1)
const solution = input => {
let len = {}
let result = ''
input.forEach(el => len[el] = el.length)
Object.entries(len).sort()
.sort((a, b) => a[1] - b[1])
.forEach(el => result += '\n' + el[0])
return result.slice(1)
}
console.log(solution(input))
394ms 로 효율이 좋은 편은 아니다.
중복 단어를 제거하기 위해 임의의 객체에 단어-길이
를 키-값
쌍으로 저장하고
단어-길이
를 요소로 갖는 배열 Object.entries(len)
에 대하여
.sort()
.sort((a, b) => a[1] - b[1])
const input = [
'but', 'i', 'wont', 'hesitate',
'no', 'more', 'no', 'more', 'it',
'cannot', 'wait', 'im', 'yours'
]
function solution(words) {
let wordSet = [...new Set([...words])];
wordSet.sort((a, b) => {
if (a.length === b.length) {
if (b > a) return -1;
}
return a.length - b.length;
});
return wordSet.join("\n");
}
console.log(solution(input))