https://school.programmers.co.kr/learn/courses/30/lessons/68645
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();
}
'Coding Test > Programmers' 카테고리의 다른 글
[Programmers] (2022 KAKAO TECH INTERNSHIP) Lv 2. 두 큐 합 같게 만들기 (0) | 2023.03.09 |
---|---|
[Programmers] Lv 2. 숫자 변환하기 (0) | 2023.03.09 |
[Programmers] (월간 코드 챌린지 시즌1) Lv 2. 쿼드압축 후 개수 세기 (0) | 2023.03.08 |
[Programmers] (월간 코드 챌린지 시즌2) Lv 2. 2개 이하로 다른 비트 (0) | 2023.03.07 |
[Programmers] Lv 2. 덧칠하기 (0) | 2023.03.07 |
댓글