본문 바로가기

프로그래머스/JavaScript

[프로그래머스 JavaScript] Level1 문자열 내 마음대로 정렬하기

- 문자열로 구성된 리스트와, 정수 n이 주어집니다.

- 각 문자열의 n번째 글자를 기준으로 문자열을 오름차순 정렬합니다.

- 만약 n번째 글자가 같다면, 사전 순으로 문자열을 배치합니다.

 

 

문자열을 오름차순으로 정렬


function solution(strings, n) {
  strings.sort(function(a, b) {
  	a - b
  })
}

 

문자열의 n번째 글자를 기준으로 오름차순 정렬


function solution(strings, n) {
  strings.sort(function(a, b) {
  	a[n] - b[n]
  })
}

 

이때, n번째의 글자가 같다면, 사전 순으로 정렬

사전 순으로 정렬할 수 있는 메서드로는 localeCompare()이 있습니다.

localeCompare()는 메서드는 배열의 정렬도 가능합니다.


function solution(strings, n) {
  strings.sort(function(a, b) {
  	if(a[n] == b[n]) {
    	a.localeCompare(b)
    } else {
    	a[n].localeCompare(b[n])
    }
  })
}

 

위에 코드를 화살표함수, 3항 연산자로 정리해줍니다.

 

최종 코드


function solution(strings, n) {
    var answer = [];
    
    answer = strings.sort((a, b) => a[n] == b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n]));
    
    return answer;
}