티스토리 뷰

Data Structure & Algorithm

JS_flattenArray

Alledy 2019. 4. 4. 16:04
  • 문제

    Nested array를 flatten하라

 

  • 내가 푼 답

    function steamrollArray(arr) {
      var flat = (arr) => arr.flat();
      
      while(true) {
        if(arr.filter(i => Array.isArray(i)).length === 0) {
          break;
        }
        arr = flat(arr);
      }
      return arr;
    }
    

     

  • Intermediate Solution

    function steamrollArray(arr) {
      let flat = [].concat(...arr);
      return flat.some(Array.isArray) ? steamrollArray(flat) : flat;
    }
    

    나는 flat 메소드를 쓴 반면, 솔루션에서는 spread operator를 사용하여 flat을 했다. 그리고 나는 while을 사용해서 loop를 돌렸지만 솔루션에서는 재귀와 some 메소드를 사용했다. Array.some(Array.isArray) 가 탈출 조건이 된 셈(나는 필터를 썼지만)이고 탈출 조건이 충족될 때까지 자기자신을 계속 호출했다.

'Data Structure & Algorithm' 카테고리의 다른 글

동적 프로그래밍  (0) 2019.04.08
JS_Cash Register  (0) 2019.04.06
JS_Sum Primes  (0) 2019.04.03
탐욕 알고리즘  (0) 2019.04.03
JS_Spinal Tap Case  (0) 2019.03.30
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함