반응형
--------------------문제 설명--------------------
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
--------------------제한 사항--------------------
- n은 10,000,000,000이하인 자연수입니다.
-------------------- 풀이 --------------------
1
2
3
4
5
6
7
8
9
|
func solution(_ n:Int64) -> [Int64] {
var result: [Int64] = []
var reN: Int64 = n
while reN > 0{
result.append( reN % 10 )
reN /= 10
}
return result
}
|
cs |
첫 풀이로 만든 코드입니다.
아직 자바에서 풀던 습관이 남아있어서 자연수를 10으로 나누어 나머지 값을 차례대로 배열에 담아 리턴하는 방식을 사용했습니다.
다만 이 경우에 한 테스트 케이스에서 시간초과 오류가 떨어지게 됩니다.
그래서 만들어 본 두번째 코드 입니다.
1
2
3
4
|
func test(_ n:Int64) -> [Int] {
return String(n).map{ Int(String($0))! }.reversed()
}
|
cs |
swift의 경우에는 다행히 reversed함수가 있어 간단하게 풀수 있다.
조금 더 자세히 설명해 보면 String(n)의 경우에는 n을 강제로 형변환 하여 .map함수를 사용할 수 있도록 변경한다.
.map의 경우에는 해당 String을 charter로 한 배열에 순서대로 넣어준다. 예를 들면 ["S", "t", "r", "i", "n", "g"]같은 부분으로 변경해준다.
그 안의 String($0)은 n을 가리키고 그 부분을 Int로 변경해준다.
그렇다면 배열안에 있는 내용은 Int형식을 취하게 된다.
그 이후 reversed함수를 사용하면 해당 배열을 거꾸로 만들어 준다.
반응형
'Algorithm & Data Structure > Algorithm' 카테고리의 다른 글
[프로그래머스] 수박수박수박수박수박수? .with Swift (0) | 2024.06.03 |
---|---|
[프로그래머스] 나누어 떨어지는 숫자 배열 .with Swift (0) | 2024.05.31 |
[프로그래머스] 자릿수 구하기 .with Swift (0) | 2024.05.29 |
[프로그래머스]문자열 나누기 with Swift (0) | 2024.05.28 |
[프로그래머스] 3진법 뒤집기 java 풀이 (1) | 2023.11.21 |