1. 문제 설명

2. 풀이
function solution(n) {
const result = Array.from(Array(n), () => Array(n).fill(0)); // n x n 배열 생성
let num = 1; // 시작 숫자
let row = 0; // 행의 시작 인덱스
let col = 0; // 열의 시작 인덱스
for (let i = n; i > 0; i -= 2) {
// 오른쪽으로 이동
for (let j = 0; j < i; j++) {
result[row][col] = num++;
col++;
}
col--;
row++;
// 아래로 이동
for (let j = 0; j < i - 1; j++) {
result[row][col] = num++;
row++;
}
row--;
col--;
// 왼쪽으로 이동
for (let j = 0; j < i - 1; j++) {
result[row][col] = num++;
col--;
}
col++;
row--;
// 위로 이동
for (let j = 0; j < i - 2; j++) {
result[row][col] = num++;
row--;
}
row++;
col++;
}
return result;
}
- 문제 이해는 완료.. 근데 어떻게 접근해야할지 감도 안 잡혀서 다른 분이 올려주신 코드 중에 제일 이해가 잘 가는 코드를 학습,,
- 너무 어려워,, 이게 왜 0단계야 🥲
- 참고한 블로그
https://hihiha2.tistory.com/112
프로그래머스 정수를 나선형으로 배치하기 JS ( Array(), Array.from(), 중첩for문, n x n 2차원배열만들기
문제 설명 양의 정수 n이 매개변수로 주어집니다. n × n 배열에 1부터 n2 까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요. ✅ 코
hihiha2.tistory.com
'JAVASCRIPT > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 0단계 - 최빈값 구하기 (0) | 2024.01.17 |
---|---|
[프로그래머스] 0단계 - 분수의 덧셈 (유클리드 호제법) (0) | 2024.01.16 |
[프로그래머스] 0단계 - 특별한 2차원 배열 (1) | 2024.01.14 |
[프로그래머스] 0단계 - 그림확대 (0) | 2024.01.14 |
[프로그래머스] 0단계 - 배열의 길이를 2의 거듭제곱으로 만들기 (0) | 2024.01.12 |