programmers 코딩테스트 : 문자열 내림차순으로 배치하기

H·2022년 6월 14일
0

Coding Test

목록 보기
23/26

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

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

⛔ 제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.


🔠 통과한 코드 (아스키 코드)

const s = "Zbcdefg";
function solution(s) {
    let answer = "";
    let arr = [];
    for (let i = 0; i < s.length; i++) {
        let ask = s[i].charCodeAt(0);
        arr.push(ask);
    }
    answer = arr
        .sort(function (a, b) {
            return b - a;
        })
        .map((el) => {
            return String.fromCharCode(el);
        })
        .join("");
    return answer;
}
solution(s);

📌 코드 설명

  1. 문자열을 for()으로 문자열에 맞는 아스키 코드로 변환 후 새 배열에 담음
  2. 해당 배열은 sort()로 정렬 후 map()으로 String.fromCharcode()로 변환
  3. 배열 > 문자열로 변환
  4. return answer;

🔠 위 코드 축약버전

function solution(s) {
  return Array.from(s)
    .sort((a, b) => b.charCodeAt(0) - a.charCodeAt(0))
    .join("");
}

🔠 다른 사람의 코드

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

📌 코드 설명

sort()로 내림 차순 정렬을 하지 않아도 reverse()로 돌릴 수 있음 !

🔠 다른 사람의 코드

function solution(s) {
    var answer = Array.from(s).sort(function(a,b){
        if (a > b) return -1;
        if (b > a) return 1;
        return 0;
    }).toString().replace(/,/g,'');
    return answer;
}
profile
🤘 돌머리도 ROCK이다! 🤘

0개의 댓글