스파르타 코딩 클럽 - 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] 타입이 옵셔널 아님

 😼 GitHub