https://www.acmicpc.net/problem/2167
2167번: 2차원 배열의 합
첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는
www.acmicpc.net
[유형]
- 구현
- 누적 합
[풀이]
첫번째 리턴된 숫자 63을 예로 들면,
i j x y = 1 1 2 3
(1,1) 위치부터~ (2,3) 위치까지 저장된 숫자들 합
---> j, y
|
i, x
const fs = require('fs');
const [[n, m], ...arr] = fs.readFileSync('./input.txt').toString().trim().split('\n').map(el => el.split(' ').map(el => +el));
const ans = [];
// console.log(n) // 2
// console.log(m) // 3
// n행 까지 2차원 배열
// console.log(arr.slice(0, n))
// k행부터 끝까지 2차원 배열
// console.log(arr.slice(n + 1))
kArray = arr.slice(n + 1)
for(let [i, j, x, y] of kArray) {
//console.log('🍀', i, j, x, y);
let sum = 0;
for(a=i; a<=x; a++){
for(b=j; b<=y; b++){
sum +=arr[a-1][b-1]
}
}
ans.push(sum);
}
console.log(ans.join("\n"));
🔍 Array.slice()
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
Array.prototype.slice() - JavaScript | MDN
slice() 메서드는 어떤 배열의 begin 부터 end 까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다. 원본 배열은 바뀌지 않습니다.
developer.mozilla.org
728x90
반응형
'자료구조+알고리즘 > BOJ' 카테고리의 다른 글
[백준2751-silver5] 수 정렬하기 2 (javascript) (0) | 2024.03.07 |
---|---|
[백준11441-silver3] 합 구하기 (javascript) (2) | 2024.03.05 |
[BOJ-10845_silver4] 큐 (자바스크립트) (0) | 2024.03.02 |
[BOJ-11866_silver5]요세푸스 문제 0 (자바스크립트) (1) | 2024.03.02 |
[BOJ-24511_silver3] queuestack (javascript) (0) | 2024.03.02 |