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

OwlSuri·2022년 3월 25일
0

프로그래머스 문제이다.

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

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

문자의 크기를 비교하기 위해서 유니코드를 이용한다.
"a".charCodeAt()
을 이용하면 숫자로 된 값을 얻을 수 있는데
소문자는 97~122의 값을 얻을 수 있고,
대문자는 65~90의 값을 얻을 수 있다.

sort()

  1. 배열에서만 사용이 가능하다
  2. 문자열, 숫자를 내림/오름차순 정렬이 가능하다.

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()을 이용한다.

profile
기억이 안되면, 기록을 -

0개의 댓글