문자열 내 마음대로 정렬하기(연습문제 Lv1 / JS)
코테/프로그래머스

문자열 내 마음대로 정렬하기(연습문제 Lv1 / JS)

반응형

 

코딩테스트 연습 > 연습문제 > 문자열 내 마음대로 정렬하기 Lv1

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


문제정리

보통 알파벳 순으로 정렬을 한다고 하면은 제일 앞글자로 정렬을 하는 것입니다.

하지만 여기서 문제는, 말 그대로 내 맘대로 정렬하기입니다.

알파벳으로 정렬한다는 것이 무조건 앞의 글자가 아니라는 뜻입니다.

그래서 strings라는 배열과, n이라는 몇 번째 글자를 기준으로 할 것인지 input 값을 줍니다.

그래서 여기서 sort를 사용할 것인데, 항상 무심코 a-b를 주로 사용해 왔는데 조건을 줄 수 있는 것을 MDN을 우연히 보고 알았습니다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

a를 기준으로, b보다 작으면 return -1을 하여 배열에서 앞으로, b보다 크면 return 1, 동일하면 return 0으로 설정해줄 수 있습니다.

 

코드

function solution(strings, n) {
    var answer = strings.sort((a,b)=>{
        if(a[n]>b[n]) return 1;
        if(a[n]<b[n]) return -1;
        if(a[n]===b[n]){
            if(a>b) return 1
            if(a<b) return -1
            return 0
        }
    })
    return answer;
}

이 문제에서는 값이 같아도, 첫 알파벳 순서에 맞게 정렬을 해줘야 하기 때문에 세 번째 조건식 안에 조건식을 또 넣어준 모습이었습니다.

 

 

반응형