[프로그래머스] Lv.1 문자열 내림차순으로 배치하기 (JS)

아름·2023년 12월 18일
0

알고리즘

목록 보기
21/26

🔎 문제

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

제한 사항
str은 길이 1 이상인 문자열입니다.

입출력 예

sreturn
"Zbcdefg""gfedcbZ"

🔓 풀이 과정

고민

1) 문자열을 배열로 전환
2) 오름차순으로 전환
3) reverse 사용하여 거꾸로 전환
4) 다시 문자열로 리턴

나의 풀이

function solution(s) {
  return s.split("").sort().reverse().join("");
}
// sort((a,b) => (b-a))는 숫자를 비교하기 위해서 사용되는 방식
// 알파벳은 자동으로 대문자가 먼저 A부터 Z로 정렬되고, 소문자가 a -> z 로 정렬됨

그 밖의 풀이

// if문 사용
function solution(s) {
  return s
    .split("")
    .sort((a, b) => {
      if (a > b) return -1;  // 내림차순으로 정렬
      if (b > a) return 1;
      return 0;
    })
    .join("");
}

// 위의 식에서 삼항연산자 활용
function solution(s) {
  return s.split("").sort((a, b) => (a < b ? 1 : -1)).join("");
}
profile
내 꿈은 개발자

0개의 댓글