문자열 내림차순으로 배치하기

문제

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

제한조건

  • str은 길이 1 이상인 문자열입니다.

풀이방향

  • 대문자가 소문자 보다 작게 처리한다

문제풀이

descString.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function descString(str) {
let answer = '';
let strArr = str.split('');
//문자 배열을 descending 순서로 정렬
strArr.sort((a, b) => {
return (a < b) ? 1 : -1;
});
//정렬된 문자 배열을 이어붙이기
for (let i = 0; i < strArr.length; i++) {
answer += strArr[i];
}
return answer;
}

export { descString };
descString.test.js
1
2
3
4
5
6
7
import { descString } from "../src/descString";

describe("descString", () => {
it("should return 'gfedcbZ' for 'Zbcdefg'", () => {
expect(descString("Zbcdefg")).toBe("gfedcbZ");
});
});

문제출처

  • 프로그래머스

다른 풀이

1
2
3
4
5
6
7
function solution(s) {
return s
.split("")
.sort()
.reverse()
.join("");
}