본문 바로가기
개발/알고리즘

[프로그래머스][LEVEL1]문자열 내림차순으로 배치하기

by ISA(류) 2021. 8. 19.

# 문제 원문

문제 설명

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

제한 사항

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

입출력 예

s / return

"Zbcdefg" "gfedcbZ"

 

# 문제 풀이

입력 받은 문자열 s를 split으로 배열을 만든 후 정렬하고 다시 합쳐서 반환하는 문제이다. 별 다른 내용은 없다.

다만 아스키코드에 대해서 어느 정도 알고 있나를 보는거 같은 문제다.(알고는 있는데 솔직히 늘 다 기억하고 있는건 아니라서 긴가민가하니 손코딩 같은걸로 출제 된다면 조금 난감할듯?)

# 솔루션 플로우

1. 입력 받은 문자열 s를 쪼개서 배열로 만든다.

2. 얻어진 s[]를 정렬 해준다.

3. 정렬된 s[]를 합쳐서 result를 얻는다.

4. 얻어진 result를 반환한다.

1. FP

function solution(s) {
    return s.split('').sort((a, b) => {
        if (a.charCodeAt() > b.charCodeAt()) return -1; // 자동 형변환 하기에 charCodeAt는 사실 필요가 없다.
        if (a.charCodeAt() < b.charCodeAt()) return 1;
    }).join('');
}
반응형