프로그래머스 정렬에 있는 가장 큰 수 입니다.
해당 문제의 키포인트 입니다.
[6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210 입니다.
배열에대해 첫번째 값과 두번째 값을 비교했을때 더 큰값에 대해 정렬한다 ex) 0과 6 값이 있다면 06 와 60 비교하여 정렬한다.
최종적으로 정렬한값은 String으로 변환한후 배열이 아닌 값으로 리턴한다.
정렬한 값의 첫번째값이 0 일경우 나머지 값도 다 0이기때문에 0 으로 리턴한다 -> 0000 으로할경우 답이 아님.
import Foundation
func solution(_ numbers:[Int]) -> String {
let sorted = numbers.sorted {
return "\($0)\($1)" > "\($1)\($0)"
}
if sorted[0] == 0 {
return "0"
}
return sorted.map{ String($0) }.joined()
}
https://programmers.co.kr/learn/courses/30/lessons/42746
'Algorithm' 카테고리의 다른 글
Algorithm(Swift) - 부족한 금액 계산하기 (0) | 2021.09.12 |
---|---|
Algorithm(Swift) - H-Index (0) | 2021.08.28 |
Algorithm(Swift) - 모의고사 (0) | 2021.08.27 |
Algorithm(Swift) - K번째수 (0) | 2021.07.18 |
Algorithm(Swift) - 두 개 뽑아서 더하기 (0) | 2021.07.18 |