본문 바로가기
trouble shooting

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

by dev정리 2022. 9. 26.

문제 설명

문자열 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("");
}

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