https://www.acmicpc.net/problem/1755
const filePath = process.platform === 'linux' ? 0 : './input.txt';
let [M, N] = require('fs')
.readFileSync(filePath)
.toString()
.trim()
.split(' ')
.map(Number);
const solve = (M, N) => {
// 숫자를 영어로 변환하는 함수
const numberToWords = (num) => {
const digitWords = [
'zero',
'one',
'two',
'three',
'four',
'five',
'six',
'seven',
'eight',
'nine',
];
return num
.toString()
.split('')
.map((digit) => digitWords[Number(digit)])
.join(' ');
};
// M부터 N까지 숫자와 영어 단어로 변환한 배열 생성
let numbers = [];
for (let i = M; i <= N; i++) {
numbers.push({ num: i, words: numberToWords(i) });
}
// 영어 단어 기준으로 정렬
numbers.sort((a, b) => a.words.localeCompare(b.words));
// 정렬된 숫자만 추출
const sortedNumbers = numbers.map((item) => item.num);
// 출력 형식에 맞게 10개씩 묶어서 결과 생성
let result = '';
for (let i = 0; i < sortedNumbers.length; i++) {
result += sortedNumbers[i] + ' ';
if ((i + 1) % 10 === 0) {
result = result.trim() + '\n';
}
}
return result.trim();
};
console.log(solve(M, N));