자바스크립트 문자열 내림차순 정렬하는 방법 (Sorting strings in descending order in Javascript)

남양주개발자

·

2021. 8. 10. 12:06

728x90
반응형

자바스크립트 문자열 내림차순 정렬하는 방법 (Sorting strings in descending order in Javascript)

자바스크립트에서 문자열 내림차순 배치는 자바스크립트 빌트인 메서드 split, sort, reverse, join을 적절하게 활용해서 해결할 수 있습니다.

문제

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

제한사항

문자열의 길이는 1 이상입니다.

입출력 예시

// before
"zZbcCdDeEfFgG"

// after
zgfedcbZGFEDC

문제풀이 설명

const sortStr = str => {
    return s.split('').sort().reserve().join('')
}

// 자바스크립트 기본 정렬 예시
// origin - ['A', 'a', 'b', 'B', 'C', 'c']
// sort - ["A", "B", "C", "a", "b", "c"]

문자열에 정렬 기능을 활용하기 위해서는 문자열을 배열로 변환한 뒤 정렬을 수행해야 합니다. 각 단계별 설명은 아래와 같습니다.

  1. split - 문자열 쪼개서 배열로 만든다.
  2. sort - 배열을 알파벳 순서대로 정렬시킨다. (자바스크립트 빌트인 sort 메서드는 자체적으로 대문자와 소문자별로 정렬시킨다)
  3. reverse - 배열을 내림차순으로 정렬 변경
  4. join - 배열을 합쳐서 문자열로 다시 구성시킨다.

만약 sort 메서드를 사용하지 않고 내림차순 정렬을 수행한다면 아래와 같은 차이점이 있습니다. 문제에서 제시한 예외사항은 대문자는 소문자보다 작은 것으로 간주하고 정렬을 수행하라고 했으니 sort 메서드를 추가해서 구현하면 됩니다. 

const word = "zZbcCdDeEfFgG";

// sort를 활용했을 때
// "zgfedcbZGFEDC"

// sort를 활용하지 않았을 때
// "GgFfEeDdCcbZz"

 

자바스크립트 뿐만 아니라 대부분의 언어에서 여기서 사용한 메서드들은 모두 내장 메서드로 제공하기 때문에 언어에 구애받지 않고 적절하게 조합해서 문제를 해결하면 됩니다.

728x90
반응형
그리드형

이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

💖 저자에게 암호화폐로 후원하기 💖

아이콘을 클릭하면 지갑 주소가자동으로 복사됩니다