DFS를 구현하여 모든 요소를 순회하며 배열인 요소 중 n차원 까지의 요소들을 flat 하는 것을 요구하는 문제이다.
type MultiDimensionalArray = (number | MultiDimensionalArray)[];
const flat = function (arr: MultiDimensionalArray, n: number): MultiDimensionalArray {
if(n === 0) return arr
const res = []
function dfs(arr, depth) {
for(const item of arr) {
if(typeof item !== 'number' && depth < n) dfs(item, depth + 1)
else res.push(item)
}
}
dfs(arr, 0)
return res
};