문제를 풀면서, 막힌 부분을 결국 해결하지 못해서, 답안을 참고하여 문제를 풀이하였다. sort()메소드를 단일 "$0 < $1" 과 같은 조건에 벗어나지 못했던 것 같다.
⇢ sort{ }
⇢ String
처음에 단순하게 문자열로 sort를 진행하여, 앞 자리수가 큰 숫자로 정렬했음에도, "자릿수가 다른 경우에 어떻게 정렬을 진행할지" 해결하지 못했다.
⇢ 0 이라는 숫자가 포함되어, 문자열로 변환시 "0000" 같은 문제가 발생.
⇢ "[3, 30, 34, 5, 9]" 인 경우, -> [ "3" 과 "30"] 자릿수가 다른 정렬 문제.
(1) String 타입으로 리턴할 정답 "answer" 선언
(2) 숫자 배열을 String으로 맵핑.
(3) 💡 문자열을 정렬 -> { $0 + $1 > $1 + $0}
import Foundation
func solution(_ numbers:[Int]) -> String {
var answer = ""
var strNumbers = numbers.map{String($0)}
strNumbers.sort{ ($0 + $1) > ($1 + $0) }
if strNumbers.first! == "0" { answer = "0"}
else{ strNumbers.forEach{answer += $0} }
return answer
}