본문 바로가기
Coding Test/Programmers

[Programmers] (월간 코드 챌린지 시즌1) Lv 2. 삼각 달팽이

by song.ift 2023. 3. 8.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

function solution(n) {
    const arr = [];
    let [dir, cnt, col, row] = [0, 1, -1, 0];

    while (n) {
        for (let i = 0; i < n; ++i) {
            col += ((dir === 0) ? 1 : (dir === 2) ? -1 : 0);
            row += ((dir === 1) ? 1 : (dir === 2) ? -1 : 0);

            if (!arr[col]) arr[col] = [];
            else if (arr[col].length < row) arr[col] = Array.from({ length: row + 1 }, (_, i) => arr[col][i] ? arr[col][i] : 0);

            arr[col][row] = cnt++;
        }
        dir = ++dir % 3;
        --n;
    }
    return arr.flat();
}

GitHub : https://github.com/developeSHG/Algorithm-Baekjoon_Programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/lv2/68645.%E2%80%85%EC%82%BC%EA%B0%81%E2%80%85%EB%8B%AC%ED%8C%BD%EC%9D%B4

 

GitHub - developeSHG/Algorithm-Baekjoon_Programmers: 백준 and 프로그래머스 소스코드

백준 and 프로그래머스 소스코드. Contribute to developeSHG/Algorithm-Baekjoon_Programmers development by creating an account on GitHub.

github.com

 

댓글