๐Ÿ”’Algorithm

LeetCode[JS] > 2718. Sum of Matrix After Queries

devWarrior 2025. 3. 15. 19:45

๋ฌธ์ œ๋งํฌ

https://leetcode.com/problems/sum-of-matrix-after-queries/description/

๋ฌธ์ œํ’€์ด

์ด ๋ฌธ์ œ๋ฅผ ์•„๋ฌด ์ƒ๊ฐ์—†์ด ์ˆœ์„œ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ๋‹ต์„ ๋„์ถœ ์‹œ memory heap size ์ดˆ๊ณผ๋ฅผ ๋งž๋”ฑ๋“œ๋ฆฌ๊ฒŒ ๋œ๋‹ค. 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ํ•ด๋‹น ๋ฐฐ์—ด์„ ์กฐ์ž‘ํ•˜๋Š” ๋Œ€์‹  ๋‚˜๋Š” Set ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ์—ฐ์‚ฐํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™” ํ•˜์˜€๋‹ค. ๋’ค์— ์žˆ๋Š” ์ฟผ๋ฆฌ์ผ์ˆ˜๋ก ๊ธฐ์กด ๋ฐฐ์—ด์˜ ๊ฐ’์„ override ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งจ๋’ค์˜ ์ฟผ๋ฆฌ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋ฉด ๋œ๋‹ค. 

/**
 * @param {number} n
 * @param {number[][]} queries
 * @return {number}
 */
var matrixSumQueries = function (n, queries) {
    let sum = 0;

    let removedRow = new Set();
    let removedColumn = new Set();

    for (let i = queries.length - 1; i >= 0; --i) {
        let [type, index, val] = queries[i];

        if (type && !removedColumn.has(index)) {
            // 1 -> column
            removedColumn.add(index);
            sum += (n - removedRow.size) * val;
        } else if (!type && !removedRow.has(index)) {
            // 0 -> row
            removedRow.add(index);
            sum += (n - removedColumn.size) * val;
        }
    }

    return sum;
};