[프로그래머스] [3차] 파일명 정렬 - JS

잡초·2024년 5월 16일
0
post-thumbnail

문제

풀이

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 부분이 모두 같은 경우에는 원래의 순서를 유지
  });
}
profile
개발자가 되고싶은 잡초

0개의 댓글