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

doyeonjeong_·2022년 7월 22일
0

프로그래머스

목록 보기
6/35
post-custom-banner

문제

정수 내림차순으로 배치하기

문제파악하기

  1. Int형 변수를 각 숫자 단위로 쪼개 배열에 담는다.
  2. 배열을 역정렬시킨다.
  3. 그 배열을 순서대로 String에 담는다.
  4. String -> Int64로 형변환하여 반환한다.

풀이


func solution(_ n:Int64) -> Int64 {
    var array = String(n).compactMap{$0.wholeNumberValue} // 각 숫자 단위의 배열로 형변환
    array.sort(by: >) // 내림차순 정렬
    
    var myString = "" // 빈 문자열 선언
    _ = array.map{ myString = myString + "\($0)" } // array의 각 인자값을 하나의 스트링으로 만들고 빈 변수에 반환
    return Int64(myString) ?? 0 // String을 Int64 형변환하여 반환
}

🤔 FEEDBACK

  • 스택오버플로우를 찾아가며 혼자 풀어낸거에 뿌듯함 + 10
  • 코드가 5줄밖에 안되는거에 뿌듯함 + 10
  • 하.. 이쯤되면 코딩 진짜 금방 느는거 아니냐며 뿌듯해하던 시간 5초
  • 내 코드는 느린편이었고 심지어 한줄로 끝낼 수 있었다.
  • 그래도.. _ = 이런식으로 필요없는 변수를 사용하지 않는 방법도 배웠다.
  • Swift 5 이상 문법에서 compactMap{$0.wholeNumberValue}가 있는것도..

다른 풀이


func solution(_ n:Int64) -> Int64 {
    return Int64(String(Array(String(n)).sorted(by: >)))!
}

Reference

https://stackoverflow.com/questions/28611336/how-to-convert-a-string-numeric-in-a-int-array-in-swift

https://stackoverflow.com/questions/42122938/convert-int-array-into-an-integer-swift

profile
블로그 이사중 🚚 byukbyak.tistory.com
post-custom-banner

0개의 댓글