알고리즘 - 삼각 달팽이

HoJeong Im·2021년 9월 19일
0

Break_Algo

목록 보기
5/46

문제

  • 하루에 하나씩 풀고 자야지라는 생각에 무심코 했다가 새벽 6시에 잠 ㅠㅠ
  • 배열 인덱스, 순회, JS 이차원 배열 생성 등 다시 봐야할 부분들이 많았다
    • 너무 안일 했었다.
  • 링크

코드

function solution(n) {
    let answer = [];
    
    let arr = Array.from(new Array(n), () => new Array(n).fill(0));
    
    let start = [-1,0];
    
    let count = 1;
    
    for(let i = n; i >= 1 ; i-=3){
        for(let j = 0; j < i; j++){
          arr[++start[0]][start[1]] = count++;     
        }
        for(let j = 0; j < i-1; j++){
          arr[start[0]][++start[1]] = count++;   
        }
        for(let j = 0; j < i-2; j++){
          arr[--start[0]][--start[1]] = count++;   
        }
    }
    
   
    return arr.flat(2).filter(e=>e!=0);

}

회고

  • Array.from : 유사 배열이나, 반복 가능한 객체를 얕은 복사를 통해 배열 객체로 생성
profile
꾸준함이 제일 빠른 길이었다

0개의 댓글