알고리즘 문제 풀이
[Swift] 프로그래머스 LV2. 가장 큰 수
lgvv
2022. 4. 2. 02:01
프로그래머스 LV2. 가장 큰 수
✅ 프로그래머스 LV2. 가장 큰 수
이번 문제를 포스팅 하는 이유는 조금 특이한 정렬 방법 때문이다.
우선 정렬를 저렇게 하는데, 저렇게 하면 각 숫자의 길이에 관계없이, 정렬을 할 수가 있다.
그리고 0000을 반환하는 옵션을 하나 추가하는데, 내림차순임으로 가장 앞자리가 0이면 모든 값이 0이라는 의미니까 이렇게 작성한다.
//https://programmers.co.kr/learn/courses/30/lessons/42746
import Foundation
struct p42746 {
static func run() {
// print(p42746.solution([6, 10, 2])) // 6210
// print(p42746.solution([3, 30, 34, 5, 9])) // 9534330
print(p42746.solution([0, 0, 0])) // 0
}
static func solution(_ numbers:[Int]) -> String {
// 차례로 앞 두개를 순서를 바꾸어서 이어 붙여보기
var answer = ""
let list = numbers.sorted { Int("\($0)\($1)")! > Int("\($1)\($0)")!}
answer = list.map { "\($0)" }.joined()
if answer.first == "0" { answer = "0" }
return answer
}
}