
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'Wiki\\input.txt';
const [heads, tails] = fs.readFileSync(path).toString().trim().split('\n');
const seq = tails.split(' ');
const checkObj = {};
for (const s of seq) {
if (s in checkObj) checkObj[s]++;
else checkObj[s] = 1;
}
seq.sort((a, b) => {
if (checkObj[a] !== checkObj[b]) return checkObj[b] - checkObj[a];
return seq.indexOf(a) > seq.indexOf(b) ? 1 : -1;
});
console.log(...seq);
일단 각 요소가 몇개 있는지 체크해주는 객체를 만들었다.
그리고 문제 요구사항대로 빈도 정렬해주면 된다.
빈도 정렬 로직은 sort 함수의 콜백에 넣어준다.