\(@^0^@)/

[TDL] 06/17 Today's-Done-List 본문

TDL

[TDL] 06/17 Today's-Done-List

minjuuu 2022. 6. 17. 22:58
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