iOS/Programmers

[Swift] 문자열 내림차순으로 배치하기 | Programmers

sngsp 2024. 3. 13. 09:46

문제 설명

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

제한 사항

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

1차 고민

그냥 배열에 담고 sort해서 String으로 리턴하면 되는거아닌가요

1차 코드

func solutiona(_ s:String) -> String {
    var str = String(Array(s).sorted())
    return str
}

1차 결과

2차 고민

아이고 사장님... playGround에 돌려보았더니 어째 순서가 전혀 변하지 않았다.
sorted가 오름차순 정렬이라 그랬던 것 같은데 깜빡했다. reversed를 추가해주면 내림차순이지 않겠는가

2차 코드

func solution(_ s:String) -> String {
    var str = String(Array(s).sorted())
    var str2 = String(str.reversed())
    return str2
}

2차 결과

다른 사람의 코드

sorted를 역순으로 하는 방법은 by: >였다. 좌측에 더 큰 값이 오도록 이었다.

func solution(_ s:String) -> String {
    return String(Array(s).sorted(by:>))
}

이 방법을 쓰면 변수 선언이 필요가 없어진다.