본문 바로가기

Programmers/JS

[Programmers/JS] 문자열 내 마음대로 정렬하기

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/12915?language=javascript

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. 문제 풀이

  • strings배열에 sort함수를 적용하여 정렬을 시켜줌.
  • n번째 인덱스의 값이 같다면 사전 순으로 정렬해야 하기 때문에 a[n] === b[n] 조건을 만들어 매개변수 a,b를 비교하는 조건문을 하나 추가하였다.

compareFunction의 반환값에 따라 어떻게 정렬될까?

compareFunction이 a, b 두 개의 값을 매개변수로 받을 때

  • 반환값이 0보다 작은 경우 a를 b앞에 정렬
  • 반환값이 0보다 큰 경우 b를 a앞에 정렬
  • 0일 경우 a와 b의 순서를 바꾸지 않음

 

  • 자바스크립트의 sort([compareFunction]) 함수에 대해  공부가 된 문제였던 것 같음.

 

2. 제출 코드

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