[프로그래머스] 파일명 정렬 - JavaScript

이수동·2022년 2월 27일
0
post-thumbnail

프로그래머스 Level 2 - 파일명 정렬


📌 문제 설명


📌 생각한 풀이 방법

  1. 숫자가 나오기 직전인 HEAD를 정규표현식으로 구한다.
  2. HEAD를 기준으로 정렬을 한다.
  3. HEAD가 같을 경우, NUMBER부분을 정규표현식으로 구한다.
  4. NUMBER의 크기에 따라 정렬을 한다.

📌 풀이

function solution(files) {
  return files.sort((a, b) => {
    // 숫자가 나오기 직전인 HEAD를 정규표현식으로 구한다.
    let wordA = a.match(/^\D+/)[0].toLowerCase();
    let wordB = b.match(/^\D+/)[0].toLowerCase();

    // HEAD를 기준으로 정렬을 한다.
    if (wordA < wordB) {
      return -1;
    }
    if (wordA > wordB) {
      return 1;
    }

    // HEAD가 같을 경우, NUMBER부분을 정규표현식으로 구한다.
    let numberA = Number(a.match(/\d+/)[0]);
    let numberB = Number(b.match(/\d+/)[0]);

    // NUMBER의 크기에 따라 정렬을 한다.
    return numberA - numberB;
  });
}
profile
기록을 통한 성장하기 🧐

0개의 댓글