function solution(files) {
// 주어진 files 배열을 정렬
return files.sort((a, b) => {
// 각 파일명을 HEAD, NUMBER, TAIL로 분리
// ^\D+ 는 파일명의 시작부터 숫자가 아닌 문자들 (HEAD 부분)
const arr1 = a.match(/^\D+/)[0];
const arr2 = b.match(/^\D+/)[0];
// \d+ 는 숫자 부분 (NUMBER 부분)
const num1 = parseInt(a.match(/\d+/)[0], 10);
const num2 = parseInt(b.match(/\d+/)[0], 10);
// HEAD 부분을 대문자로 변환하여 비교
if (arr1.toUpperCase() < arr2.toUpperCase()) return -1;
if (arr1.toUpperCase() > arr2.toUpperCase()) return 1;
// HEAD 부분이 같다면, NUMBER 부분을 비교
if (num1 < num2) return -1;
if (num1 > num2) return 1;
// HEAD와 NUMBER 부분이 모두 같은 경우에는 원래의 순서를 유지
});
}