알고리즘 - 프로그래머스 자연수 뒤집어 배열로 만들기 (Swift)

2020. 7. 23. 11:47Algorism

반응형

문제 설명

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

제한 조건

  • n은 10,000,000,000이하인 자연수입니다.

입출력 예

nreturn

12345 [5,4,3,2,1]

 


 

네 레벨1의 문제라 그렇게 어렵진 않아요.

 

입력받은 숫자를 while을 돌면서 10으로 나눈값을 배열에 추가하여 리턴하는 방법도 있겠지만 

 

조금더 심플하게 풀어볼게요.

 

import Foundation

func solution(_ n:Int64) -> [Int] {
    return String(n).map { Int(String($0))! }.reversed()

}

let reulst = solution(123134100023500)

 

먼저 입력받은 숫자를 문자열로 변경해줍니다.

그리고 map함수를 사용하여 문자열을 char형으로 한개식 루프를 돌때 String 타입으로 그리고 반환할 Int타입으로 변환해줍니다.

 

그리고 정렬을 reversed함수를 사용하여 큰값이 앞에 오도록 해주면 문제해결!

 

# sorted를 사용하지 않고  reversed()를 사용한 이유는 reversed가 더 빠르기 때문입니다.

공식문서에 기재되어 있는 시간복잡도

sorted = O(n log n), where n is the length of the sequence.

reversed = O(n), where n is the length of the sequence.

반응형