본문 바로가기

코딩테스트

[프로그래머스] level2. [3차] 파일명 정렬 (javascript)

반응형

문제

프로그래머스 문제 링크

나의 풀이

function solution(files) {
    var answer = [];
    answer = files.sort((a,b)=>{
        const first = a.toUpperCase().match(/\D+/gi)[0];
        const second = b.toUpperCase().match(/\D+/gi)[0];
        if(first !== second){
            return (first > second) ? 1 : -1
        }

        return +a.match(/\d+/gi)[0] - (+b.match(/\d+/gi)[0])
    })
    return answer;
} 

split, match를 정규 표현식으로 활용 가능하다는 부분이 중요했던 것 같다.

너무 복잡하게 생각하지 않고 sort 내 함수로 처리 했던게 좋았다.

sort 내에서 문자열 정렬은 a-b 가 아니라 직접 -1,1을 지정해주어야 된다. 위에서는 삼항연산자를 사용했다.

match는 배열로 반환해주는데 문제 조건에 필요한 요소가 마침 제일 처음 나오는 첫번째 요소여서 첫번째 요소만 사용했다.

속도 측면에서 좋은 풀이인지는 잘 모르겠다.

반응형