[프로그래머스 문제풀이42]문자열 내 마음대로 정렬하기 자바스크립트

매드갈릭레드망고·2021년 9월 28일
0
function solution(strings, n) {
    var answer = [];
    answer=strings.sort((a,b)=>{
        const charArray=[...a];
        const targetArray=[...b];
        const char=charArray[n];
        const target=targetArray[n];
        if(char===target){
            if(a<b)
                return -1 ;
            if(a==b)
                return 0;
            if(a>b)
                return 1;
        }
        if(char>target)
            return 1;
        if(char<target)
            return -1;    
    })
    return answer;
}

문자열 대소 비교
사전 순서에서 낮을 수록 아스키코드가 낮다.
그러므로 대소비교를 했을때 낮은 것을 먼저 오게 하면 된다.

sort 함수 안의 compare function
compareFunction(a, b)이 0보다 작은 경우 a를 b보다 낮은 색인으로 정렬합니다. 즉, a가 먼저옵니다.
compareFunction(a, b)이 0을 반환하면 a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬합니다.
compareFunction(a, b)이 0보다 큰 경우, b를 a보다 낮은 인덱스로 소트합니다.

즉 a>b 일때는

banana apple 이므로
return 1을 하면
apple banana 가 된다.

0개의 댓글