
문제를 보고 고차함수를 사용하면 편하겠다는 생각이 먼저 들었다. 맨처음 filter를 쓰려고 했으나 그보다는 sorted를 쓰는 것이 더 쉽겠다는 생각이 들었다. 언젠가에 sorted를 사용해본 경험이 있어서 그랬던것 같다. 여튼 구현한 해답은 다음과 같다.
func solution(_ s:String) -> String {
var result = s.sorted(by: >)
return String(result)
}
맨처음에는 리턴값을 그냥 result로 하였는데 Cannot convert return expression of type '[String.Element]' (aka 'Array<Character>') to return type 'String' 이라는 에러가 났다. 이 에러는 s.sorted()는 문자열을 정렬하여 문자로 이루어진 배열을 반환하면서 생기는 문제이다. 그러므로 배열을 다시 문자열로 바꾸어 주기 위해 타입변환을 해주었다.