CodingSpace

[HackerRank/Algorithms] Warmup - Diagonal Difference 본문

HackerRank/Algorithm

[HackerRank/Algorithms] Warmup - Diagonal Difference

개발자_조이킴 2022. 8. 21. 00:04

Problem. Warmup - Diagonal Difference


Link.

https://www.hackerrank.com/challenges/diagonal-difference/problem?isFullScreen=true

 

A Very Big Sum | HackerRank

Calculate the sum of the values in an array that might exceed the range of int values.

www.hackerrank.com


Description.

Given a square matrix, calculate the absolute difference between the sums of its diagonals.

 


Key Point. 


My Answer. 

'use strict';

const fs = require('fs');

process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', function(inputStdin) {
    inputString += inputStdin;
});

process.stdin.on('end', function() {
    inputString = inputString.split('\n');

    main();
});

function readLine() {
    return inputString[currentLine++];
}

/*
 * Complete the 'diagonalDifference' function below.
 *
 * The function is expected to return an INTEGER.
 * The function accepts 2D_INTEGER_ARRAY arr as parameter.
 */

function diagonalDifference(arr) {
    // Write your code here
    let leftSum = 0;
    let rightSum = 0;
    
    for(let i = 0; i < arr.length; i++) {
        let left = arr[i][i];
        let right = arr[i][arr.length - i - 1]
        leftSum = leftSum + left;
        rightSum = rightSum + right;
    }
    
    return Math.abs(leftSum - rightSum);
}

function main() {
    const ws = fs.createWriteStream(process.env.OUTPUT_PATH);

    const n = parseInt(readLine().trim(), 10);

    let arr = Array(n);

    for (let i = 0; i < n; i++) {
        arr[i] = readLine().replace(/\s+$/g, '').split(' ').map(arrTemp => parseInt(arrTemp, 10));
    }

    const result = diagonalDifference(arr);

    ws.write(result + '\n');

    ws.end();
}

References. 

 

Comments