알고리즘 - 프로그래머스 자연수 뒤집어 배열로 만들기 (Swift)
2020. 7. 23. 11:47ㆍAlgorism
반응형
문제 설명
자연수 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.
반응형
'Algorism' 카테고리의 다른 글
알고리즘 - 프로그래머스 최대공약수와 최소공배수 (Swift) (0) | 2020.07.23 |
---|---|
알고리즘 - 프로그래머스 정수 제곱근 판별 (Swift) (0) | 2020.07.23 |
알고리즘 - 프로그래머스 시저 암호(Swift) (0) | 2020.07.20 |
알고리즘 - 프로그래머스 문자열 내 마음대로 정렬하기(Swift) (0) | 2020.07.20 |
알고리즘 - 프로그래머스 나누어 떨어지는 숫자 배열 (Swift) (0) | 2020.07.20 |