Programmers/LV1.

Lv1 | Swift - 정수 내림차순으로 배치하기

ziziDev 2024. 6. 4. 09:17
반응형

안녕하세요

오늘은 프로그래머스

자연수 뒤집어 배열로 만들기를 풀었습니다

 

 

문제 설명

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

제한 조건
  • n은 1이상 8000000000 이하인 자연수입니다.
입출력 예nreturn
118372 873211

 

나의 풀이

func solution(_ n:Int64) -> Int64 {
    let str = String(n)
    
    let result = str.sorted().reversed()
        
    return Int64(String(result))!
}

 

내가 사용한건 우선 정렬을 한 후 뒤집은 후에

result type이 배열이기 때문에

우선 String-Int64로 자료형 변환을 하고 있는걸 볼 수 있습니다

 

 

다른 사람 풀이

func solution(_ n:Int64) -> Int64 {
    return Int64(String(n).sorted(by: >).reduce("") {String($0) + String($1)})!
}

 

다른 사람의 풀이들 중 다른 분들과 다르게 아이디어가 신박하다고 생각하여서 가지고 왔습니다

고차함수를 사용해서 배열로 변환된 요소들을 붙이려고 reduce를 사용하는걸 볼 수 있었습니다

 

 

반응형