JAVASCRIPT/코딩테스트
[프로그래머스] 0단계 - 정수를 나선형으로 배치하기
예글
2024. 1. 15. 21:28
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