배열 만들기 3을 쉽게 풀기 위해서는 flatMap을 사용할 수 있어야 합니다

 

map과 동일하게 특정 값을 배열로 반환해주지만 

flatMap map과 동일하게 특정 값배열로 반환하지만 그 특정 값고차원 배열일 수 있습니다.

flatMap을 사용하면 2차원 배열을 1차원 배열로 다시 매핑하여 반환받을 수도 있습니다.

 

flatMap을 사용하지 않고 직접 배열에서 데이터를 추출하기 위해선 다음과 같을 수 있지만

 

절망편

func solution(_ arr:[Int], _ intervals:[[Int]]) -> [Int] {
    var tmp: [Int] = []
    for i in intervals {
        for j in i[0]...i[1] {
            tmp.append(arr[j])
        }
    }
    return tmp
}

 

flatMap을 사용하면 다음과 같이 코드 한줄로 해결할 수 있습니다.

희망편

func solution(_ arr:[Int], _ intervals:[[Int]]) -> [Int] {
    return intervals.flatMap { ints in Array(arr[ints[0]...ints[1]]) }
}
ytw_developer