문자열 내림차순으로 배치하기 (Programmers Lv.1)


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

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/12917?language=javascript

 

말그대로 문자열을 내림차순으로 정렬하는 문제다.

 

아무래도 알고리즘을 C++로만 공부해왔기에 C++로는 아무 생각없이 풀었다...
하지만 자바스크립트로는 아무리 해도 풀리지 않는 것이다...! 😂😂😂

 

처음 시도했던 방법)

s.sort((a,b) => (b - a))
...

 

의 형식으로 풀면 정렬이 되지 않을까? 해서 열심히 코딩을 했는데 실패했다.

 

 sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환하기 때문!
따라서 문자열에 직접적으로 sort()를 쓰는 건 올바르지 않은 형식이었다...

 

최종 답안)

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

 

더보기

1. 문자열을 배열로 바꾸기 - [...s]
2. 정렬한 - sort()
3. 역순으로 배치 - reverse()
→ 아스키 코드에서 소문자가 대문자보다 더 큰 값을 지니고 있기 때문에 다른 조치 없이 역순으로 배치.
4. 다시 문자열로 바꾸기 - join("")

 

솔직히 자바스크립트 문법이 아직 익숙하지 않다...

 

그래도 힘내서 자바스크립트의 기초 문법부터 차근차근 다시 공부해보자!!! 💪💪💪