flat을 사용할지 dfs를 사용할지 고민하다 문제의 본 의도가 궁금해 힌트를 보았음
yield*
을 통해 본인을 재귀적으로 호출할 수 있다는 정보를 알게되어 본 문제의 의도대로 풀이하였음
type MultidimensionalArray = (MultidimensionalArray | number)[]
function* inorderTraversal(arr: MultidimensionalArray): Generator<number, void, unknown> {
for (const element of arr) {
// 배열이라면 재귀적으로 재호출
if (Array.isArray(element)) yield* inorderTraversal(element);
else yield element;
}
};