반응형
종종 2차원 배열 돌리기를 해야하는 문제가 나오곤 합니다.
그것을 위해 정리 했습니다.
1. x축 뒤집기
const arr = [[1,2,3],[4,5,6],[7,8,9]];
console.log(arr.reverse());
[7, 8, 9]
[4, 5, 6]
[1, 2, 3]
각 배열의 순서만 바꿔주면 됩니다.
2. y축 뒤집기
const arr = [[1,2,3],[4,5,6],[7,8,9]];
for(let i=0; i<arr.length; i++){
arr[i].reverse();
}
console.log(arr)
[3, 2, 1]
[6, 5, 4]
[9, 8, 7]
각 배열을 뒤집어주면 됩니다. 1,2,3 => 3,2,1
3. 90도 회전
const arr = [[1,2,3],[4,5,6],[7,8,9]];
for(let i=0; i<arr.length; i++){
for(let j=i; j<arr[i].length; j++){
[arr[i][j],arr[j][i]] = [arr[j][i],arr[i][j]];
}
}
for(let i=0; i<arr.length; i++){
arr[i].reverse();
}
console.log(arr)
[7, 4, 1]
[8, 5, 2]
[9, 6, 3]
arr[i][j] 와 arr[j][i]를 스왑한 후에, 각 배열을 뒤집어주면 됩니다.
(두번 뒤집으면 안되므로 let j=i입니다)
++배열관련 추가 팁
2차원 배열에서 i+j를 하면 슬래쉬 방향의 대각선끼리 묶을 수 있습니다.
반응형
'공부 정리 > 알고리즘' 카테고리의 다른 글
[알고리즘] 누적합 prefix sum (0) | 2022.04.05 |
---|---|
[알고리즘] 다익스트라 알고리즘 (0) | 2022.02.25 |
[알고리즘] 유니온-파인드 (자바) (0) | 2021.10.19 |
[알고리즘] 에라토스테네스의 체 (0) | 2021.07.31 |
[알고리즘] 큐 queue (0) | 2021.03.14 |
댓글