\(@^0^@)/
[TDL] 06/17 Today's-Done-List 본문
728x90
- udemy 알고리즘 강의 (재귀 2문제)
- flatten an array with recursion
/* Input 과 Output */
flatten([1, 2, 3, [4, 5]]); // [1, 2, 3, 4, 5]
flatten([1, [2, [3, 4], [[5]]]]); // [1, 2, 3, 4, 5]
flatten([[1], [2], [3]]); // [1,2,3]
flatten([[[[1], [[[2]]], [[[[[[[3]]]]]]]]]]); // [1,2,3]
문제를 보고, flatten nested array에 재귀를 사용한 경우와 해설을 조금 더 찾아보았다.
여러 접근법이 있는 것 같지만, 두 가지의 솔루션을 기억하고 기록해보자.
여러 접근법이 있는 것 같지만, 두 가지의 솔루션을 기억하고 기록해보자.
/* helper함수를 활용한 솔루션 */
function flatten(arr) {
let newArr = [];
function helper(arr) {
for (let i = 0; i < arr.length; i++) {
let element = arr[i];
if (Array.isArray(element)) {
helper(element);
} else {
newArr.push(element);
}
}
}
helper(arr);
return newArr;
}
17:50 오후 회고 스터디 (만족도 : 5)
늦게 시작했고, 집중을 못해서 목표를 달성하지 못하였음.
- 제로베이스 JS스터디 미션 2
재사용성과 중복 코드를 없애려고 이것저것 해보았는데, 리팩터링이 잘 되지 않는다ㅠ
하지만 계속 붙잡고 있을 수는 없기에 미션 2는 우선 여기까지 해놓고, 내일부터는 미션 3을 해야 할 것 같다.
미션 5까지 끝냈을 때 좋은 방법이 떠올라서 미션 2를 리팩터링 할 수 있었으면 좋겠다!
22:50 저녁 회고 스터디 (만족도 : 6)
리팩터링 실패하였기에 만족도는 6
728x90
'TDL' 카테고리의 다른 글
[TDL] 06/20 Today's-Done-List (0) | 2022.06.21 |
---|---|
[TDL] 06/18 Today's-Done-List (0) | 2022.06.20 |
[TDL] 06/16 Today's-Done-List (0) | 2022.06.17 |
[TDL] 06/15 Today's-Done-List (0) | 2022.06.16 |
[TDL] 06/14 Today's-Done-List (0) | 2022.06.14 |