공대생의 비망록

[프로그래머스][Lv. 1] 정수 내림차순으로 배치하기 Swift 풀이 본문

Programming Language/Swift

[프로그래머스][Lv. 1] 정수 내림차순으로 배치하기 Swift 풀이

myungsup1250 2022. 3. 14. 16:15

https://programmers.co.kr/learn/courses/30/lessons/12933

 

코딩테스트 연습 - 정수 내림차순으로 배치하기

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이

programmers.co.kr

풀이는 추후에 차차 올리도록 하겠습니다...
주석 처리한 한 줄로 문제를 한번에 해결할 수 있으니 참고하면 좋습니다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
func solution(_ n:Int64) -> Int64 {
    // return Int64(String(Array(String(n).sorted(by: {$0 > $1}))))!
    var tmp: Int64 = n
    var arr: [Int= [Int]()
    repeat {
        arr.append(Int(tmp % 10))
        tmp /= 10
    } while tmp > 0
    arr.sort(by: >)
    var ans: Int64 = 0
    let count = arr.count
    if count > 1 {
        for i in 0..<count-1 {
            ans += Int64(arr[i])
            ans *= 10
        }
        ans += Int64(arr[count-1])
    } else {
        ans = Int64(arr[0])
    }
    return ans
}
cs
Comments