배열 만들기 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]]) }
}
'Algorithm > programmers' 카테고리의 다른 글
프로그래머스 - 치킨 쿠폰 (0) | 2024.09.02 |
---|---|
프로그래머스 - 중복된 숫자 개수 filter, reduce (0) | 2024.08.31 |
프로그래머스 - x 사이의 개수 (0) | 2024.08.30 |
프로그래머스 - 문자열 잘라서 정렬하기 (0) | 2024.08.29 |
프로그래머스 - 배열의 유사도. feat. Set의 공집합 (intersection) (0) | 2024.08.29 |