[프로그래머스 level2] 파일명 정렬_카카오 2018

김예지·2021년 10월 24일
0

문제

https://programmers.co.kr/learn/courses/30/lessons/17686


문제 풀이

코드

function solution(files) {
    return files.sort((a, b) => {
        const headerA=a.match(/^\D+/)[0].toLowerCase();
        const headerB=b.match(/^\D+/)[0].toLowerCase();
        
        if(headerA<headerB){
            return -1;
        }
        if(headerA>headerB){
            return 1;
        }
        const numberA=a.match(/\d+/)[0].replace(/^0+/, '');
        const numberB=b.match(/\d+/)[0].replace(/^0+/, '');
        return numberA-numberB;
        
    })
}

정규표현식을 활용한 풀이이다. 이분의 풀이를 보고 참고했다. 엄청난 sort 정렬이다...
여기서 이해가 안갔던 부분이 있는데, 왜 match뒤에 [0]을 붙히냐가 이해가 되지 않았다.
살펴보니 match만 했을 때 리턴값은 배열의 형태로 나타난다. 따라서 정확한 인덱스를 지정해줘야한다.


참고 자료

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

0개의 댓글