문제 설명
함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
제한 조건
n
은 1이상 8000000000 이하인 자연수입니다.입출력 예
n | return |
---|---|
118372 | 873211 |
풀이 과정
- 정수를 문자열로 변환한다.
sorted(by: )
메서드에>
클로저를 넣어 배열을 내림차순으로 정렬한다.- 다시 정수로 변환해서 반환한다.
Solution
func solution(_ n:Int64) -> Int64 {
let sorting = String(String(n).sorted(by: >))
return Int64(sorting)!
}
/*
정수를 문자열로 변환하는 이유?
정수를 각 자리수로 분리할 수 없기 때문에,
문자열로 변환해 각 자리수에 접근할 수 있도록 해주는 것!
*/
/*
문자열로 변환해 각 자리수를 분리해 내림차순으로 정렬해주고
반환 타입인 Int64로 다시 변환해 주면 된다!
이때, 정수로 변환하는 것에 실패할 가능성이 있으므로(=옵셔널)
! 를 사용해 옵셔널 값을 강제 언래핑 해준다.
*/