소프트웨어 개발/자료구조 & 알고리즘
Array 알고리즘 문제 with JavaScript
cozyzoey
2021. 2. 28. 00:56
Array Chunk
array를 주어진 chunk 크기로 나누기
chunk([1, 2, 3, 4, 5], 2) --> [[ 1, 2], [3, 4], [5]]
# slice
function chunk(array, size) {
let chucked = []
for (i = 0; i <= array.length - 1; i += size) {
chucked.push(array.slice(i, i + size))
}
return chucked
}
Spiral Matrix
N을 입력받아 NxN spiral matrix를 출력하기
matrix(3)
[[1, 2, 3],
[8, 9, 4],
[7, 6, 5]]
# 행렬 범위를 좁혀가기
function matrix(n) {
const arr = []
for (let i = 0; i < n; i++) {
arr.push([])
}
let rowStart = 0
let rowEnd = n - 1
let colStart = 0
let colEnd = n - 1
let counter = 1
while (rowStart <= rowEnd && colStart <= colEnd) {
// Top row
for (let col = colStart; col <= colEnd; col++) {
arr[rowStart][col] = counter
counter++
}
rowStart++
// Right column
for (let row = rowStart; row <= rowEnd; row++) {
arr[row][colEnd] = counter
counter++
}
colEnd--
// Bottom row
for (let col = colEnd; col >= colStart; col--) {
arr[rowEnd][col] = counter
counter++
}
rowEnd--
// Left column
for (let row = rowEnd; row >= rowStart; row--) {
arr[row][colStart] = counter
counter++
}
colStart++
debugger
}
return arr
}