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
}
'소프트웨어 개발 > 자료구조 & 알고리즘' 카테고리의 다른 글
큐/스택 알고리즘 문제 with JavaScript (0) | 2021.03.07 |
---|---|
알고리즘 문제 with JavaScript (0) | 2021.02.28 |
String 알고리즘 문제 with JavaScript (0) | 2020.12.21 |
댓글