1. 문제 설명 (📎Link)
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
2. 제한사항
n은 10,000,000,000이하인 자연수입니다.
📝 문제
func solution(_ n:Int64) -> [Int] {
return []
}
💻 내가 푼 방법(테스트 성공)
func solution(_ n:Int64) -> [Int] {
//배열로 return이 필요하니까 빈 배열 선언
var arr: [Int] = []
//아래에서 자세히 설명
arr = String(n).map{Int(String($0))!}.reversed()
return arr
}
💡 해당 코드를 순서대로 설명
arr = String(n).map{Int(String($0))!}.reversed()
우선 전달 받은 자연수 n이 12345이라고 한다면,
1️⃣ String(n) : 형변환을 통해 각 자리의 숫자를 개별적인 문자로 접근 할 수 있게 해준다
12345 → "12345"
2️⃣ map{Int(String($0))!} : map 함수는 String(n) 문자열의 요소를 하나씩 순회한다
map 함수를 통해 다시 String($0) 처리하는 이유는 각 문자를 개별적으로 정수로 변환하기 위함이다
"12345" → "1", "2", "3", "4", "5"
이후 Int(String($0)) Int로 다시 형변환을 해줌으로서 각 문자열은 정수로 변환된다
"1","2","3","4","5" → '1', '2', '3', '4', '5'
'!'로 강제 언래핑 진행. 각 문자가 항상 숫자이므로 변환이 실패하지 않을 것을 가정하고 사용
3️⃣ .reversed() : 배열의 순서를 뒤집어서 저장한다
🔎 의문점과 공부한 것
1. 형 변환 시 순서와 어떻게 접근하는지에 대해서 더 명확해 진것 같다
2. map 함수를 좀 더 잘 활용할 수 있게 된 것 같다
3. 강제 언래핑에 대해 더 공부해야 되겠다
4. reversed() 함수가 배열을 뒤집는다는 사실을 공부했다
5. 알고리즘이 조금씩 어려워지는 느낌..
'🍎 Swift > Programmers' 카테고리의 다른 글
[👾 Programmers] 19. 정수 제곱근 판별 (0) | 2024.06.23 |
---|---|
[👾 Programmers] 18. 문자열 정수로 바꾸기 (0) | 2024.06.23 |
[👾 Programmers] 16. x만큼 간격이 있는 n개의 숫자 (0) | 2024.06.21 |
[👾 Programmers] 15. 나머지가 1이 되는 수 찾기 (0) | 2024.06.19 |
[👾 Programmers] 14. 약수의 합 (0) | 2024.06.18 |