스파르타 코딩 클럽 - iOS 스타터 6기/알고리즘 코드카타
34. 스파르타 코딩 클럽 - 6월 5일 코딩테스트 연습 (코드카타)
seongpil Heo
2025. 6. 5. 14:05
❓ 오늘의 문제
1. 자연수 뒤집어 배열로 만들기
- 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를 들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
- 제한 조건
- n은 10,000,000,000이하인 자연수입니다.
나의 정답 코드
func solution(_ n: Int64) -> [Int] {
return String(n).reversed().compactMap { Int(String($0)) }
}
✓ TIL
[ 코드 설명 ]
1 - String(n)
// Int64 타입의 숫자 n을 문자열로 변환한다.
// 12345 -> "12345"
2 - .reversed()
// 문자열을 뒤집는다. reversed는 콜렉션 타입을 반환
// "12345".reversed() -> ["5", "4", "3", "2", "1"]
3 - .compactMap { Int(String($0)) }
// 각 문자를 다시 String 타입으로 바꾸고 Int로 변환한다.
// "5" -> Int("5") -> 5
[ compactMap이란? ]
compactMap(_:) | Apple Developer Documentation
Returns an array containing the non- results of calling the given transformation with each element of this sequence.
developer.apple.com
compactMap은 옵셔널을 제거하면서 변환(mapping)해주는 함수이다.
배열의 요소를 변환하면서, nil인 값은 자동으로 제거함
map과의 차이점 :
- map : 결과에 nil도 포함됨 [Int?]
- compactMap : nil은 제거되고 [Int] 타입이 옵셔널 아님