Programmers

[iOS Swift] Lv.1 정수 내림차순으로 배치하기

pockpock 2024. 5. 12. 23:46
출처: 프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12933
난이도: Lv.1

 

문제 설명

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

 

제한 조건

  • n은 1이상 800000000000 이하인 자연수입니다.

입출력 예

n return
118372 873211

 


func solution(_ n:Int64) -> Int64 {
    let number = String(String(n).sorted(by: >))
   
    return Int64(number)
}

 

sorted 함수는 배열을 정렬하는 메서드이고 기본적으로 오름차순으로 정렬한다. 그래서 오름차순으로 정렬하고 싶을 때는,

sorted()를 사용하면 되고, 내림차순은 sorted(by: )를 사용하면 된다.

 

 또 '!'기호는 swift에서 옵셔널 타임을 강제 언래핑하는 연산자인데, 저번에 사용했는데 이번에 사용할 때도 생각을 못 해서 다시 정리해 보면, 옵셔널 타입은 값이 존재할 수도 있고 존재하지 않을 수도 있는 타입을 나타내는데, 값이 존재할 때는 옵셔널을 해제하여 일반적인 타입으로 변환해야 한다. 이때 '!' 연산자를 사용하여 옵셔널을 강제로 해재할 수 있다.

 

 주의해야 할 점은 옵셔널이 'nil'일 경우 런타임 오류가 발생할 수 있다.

쉽게말해 Int(test)!에서 test는 String 타입의 문자열이고 Int타입으로 강제 변환하고자 할 때 '!' 연산자를 사용한다.