[코드테스트] 문자열 내림차순으로 배치하기

이강민·2021년 11월 25일
0

[코드테스트]Javascript

목록 보기
30/39
post-thumbnail

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

문제설명

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

제한사항

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

입출력 예

나의풀이

26405

이전에 배웠던 localeCompare를 가져왔다. 대문자는 소문자 보다 뒤에 나와야 함으로 따로 만들었다.

function solution(s) {
  // 각 대문자와 소문자의 문자열을 추출하고 sort를 이용하여 정렬하되 localCompare로 양수로 나오게 하여 내림차순으로 정렬한뒤 join으로 하나의 문자열로 만들었다.
    let upper = s.match(/[A-Z]?/g).sort((s1,s2) => s2.localeCompare(s1)).join('');
    let lower = s.match(/[a-z]?/g).sort((s1,s2) => s2.localeCompare(s1)).join('');
 //만들어진 2개의 문자를 소문자가 먼저오게 하여 합치고 리턴하였다. 
    return lower + upper
}

다른 사람풀이


//먼저 받아온 문자를 ""기준으로 split하여 배열로 만들고 이를 sort를 이용하여 정렬한다. 정렬시킨뒤 reverse하여 내림차순으로 바꾸는데 이때 sort를 기본값으로 받고 reverse를 하면 대문자는 그대로 뒤에 간다.. 와우??
//다음 동작은 위와 같다. 
function solution(s) {
  return s.split("").sort().reverse().join("");
}
profile
AllTimeDevelop

0개의 댓글

관련 채용 정보