trouble shooting

알고리즘 연습문제20(문자열 내림차순으로 배치하기)

dev정리 2022. 9. 26. 22:28

문제 설명

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

제한 사항
  • str은 길이 1 이상인 문자열입니다.
입출력 예
 
s return
"Zbcdefg" "gfedcbZ"

 

내가 짠 코드

function solution(s) {
    let sArr = [...s];
    let descArr = sArr.sort((a,b) => {
        return b.localeCompare(a);
    })

    let upperS = [];
    let lowS = [];
    
    descArr.map((val,i) => {
        if(val.toUpperCase() == val) {
            upperS.push(val);
        }else {
            lowS.push(val);
        }
    })

    return lowS.concat(upperS).join('');
}

전시간에 배운걸 써먹고 싶었다...

더 간단 한방법이 있을텐데 한가지 배우면 그걸로 어떻게든 해결하려는 못된습관...

 

다른사람 코드를 가져와 봤다.

어느 분 코드

function solution(s) {
  return s
    .split("")
    .sort()
    .reverse()
    .join("");
}

하.. 창피하군 이렇게 간결하게 할수있는데  ㅋㅋ