[swift] 가장 큰 수

hooon·2022년 8월 7일
0

[Swift 알고리즘]

목록 보기
6/8

📌 프로그래머스 Lv - 2

문제를 풀면서, 막힌 부분을 결국 해결하지 못해서, 답안을 참고하여 문제를 풀이하였다. sort()메소드를 단일 "$0 < $1" 과 같은 조건에 벗어나지 못했던 것 같다.

📝 KeyWord

⇢ 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
}


0개의 댓글