프로그래머스 Lv.2: 삼각 달팽이

Steve·2021년 11월 15일
0

https://programmers.co.kr/learn/courses/30/lessons/68645

힘들었던 문제인데 결국 시간을 들여서 해결했다.
핵심은 달팽이 패턴의 규칙성을 찾아서 적용하는 것이다.
한줄을 입력하면 입력해야 하는 숫자가 1씩 줄어든다는 것, 그리고 입력이 끝나면 row 와 col 이 어디부터 시작해야 하는지 파악하면 코드를 짤 수 있다.

function solution(n) {
    var answer = Array(n).fill(0).map((v,i) => Array(i+1));
    let number = 1;
    let row = 0, col = 0;
    while (n > 0){
        for (let i = 0; i < n; i++){
            answer[row++][col] = number++;
        }
        row--;
        col++;
        n--;
        for (let i = 0; i < n; i++){
            answer[row][col++] = number++;
        }
        row--;
        col -= 2;
        n--;
        for (let i = 0; i < n; i++){
            answer[row--][col--] = number++;
        }
        row += 2;
        col++;
        n--;
    }
    return answer.flat();
}
profile
게임과 프론트엔드에 관심이 많습니다.

0개의 댓글