프로그래머스 문제이다.
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
str은 길이 1 이상인 문자열입니다.
문자의 크기를 비교하기 위해서 유니코드를 이용한다.
"a".charCodeAt()
을 이용하면 숫자로 된 값을 얻을 수 있는데
소문자는 97~122의 값을 얻을 수 있고,
대문자는 65~90의 값을 얻을 수 있다.
arr = ["a", "b", "Z", "c"]
default는 오름차순이다.
숫자를 오름차순으로 정렬할때는 앞자리만 비교한다.
arr = [ 1, 2, 3, 10] 이 있을때,
arr.sort() = [1, 10, 2, 3]
arr.sort((a-b) => {
return a > b ? -1 : 1 //내림차순
return a > b ? 1 : -1 //오름차순
})
로 해줘야 한다.
arr.sort( (a, b) => {
return a > b ? -1 : 1
})
-1이면(참이면) a를 앞으로 보낸다.
function solution(s) {
const answer = s.split("")
.sort((a, b) => {
return a > b ? -1 : 1
})
.join("")
return answer
}
문자열을 split()을 이용해 배열에 쪼개어 담고,
sort()를 이용해 정렬한 후,
이것을 다시 문자열로 만들기 위해 join()을 이용한다.