Skip to content

Instantly share code, notes, and snippets.

@Cellane
Last active August 29, 2015 14:20
Show Gist options
  • Save Cellane/13e4d207bf45f9de9e0f to your computer and use it in GitHub Desktop.
Save Cellane/13e4d207bf45f9de9e0f to your computer and use it in GitHub Desktop.
import Foundation
extension Int {
var rank: Int {
return self > 0 ? (Int(log10(Double(self)) + 1)) : 1
}
func expToRank(rank: Int) -> Int {
return self * Int(pow(10, Double(rank - self.rank)))
}
}
let array = [50, 2, 1, 9]
let maxRank = array.map { $0.rank }.reduce(0) { max($0, $1) }
let finalArray = array.sorted { return $0.expToRank(maxRank) >= $1.expToRank(maxRank) }
var finalNumber = 0
for (index, input) in enumerate(finalArray) {
finalNumber += input
if index + 1 < finalArray.count {
finalNumber *= Int(pow(10, Double(finalArray[index + 1].rank)))
}
}
println(finalNumber)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment