김 양의 멋따라 개발따기

HackerBank - Diagonal Difference 본문

알고리즘 풀이

HackerBank - Diagonal Difference

개발따라김양 2024. 3. 24. 15:51

 

'use strict';

import { WriteStream, createWriteStream } from "fs";
process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString: string = '';
let inputLines: string[] = [];
let currentLine: number = 0;

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

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

    main();
});

function readLine(): string {
    return inputLines[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: number[][]):number {
    // Write your code here
    let leftSum = 0;
    let rightSum = 0;
    
    for(let i = 0; i <= arr.length; i++){
        if(i < arr.length){
             leftSum += arr[i][i]; 
            rightSum += arr[i][arr.length -1 -i]
        }
    }

    return Math.abs(leftSum - rightSum);
}

function main() {
    const ws: WriteStream = createWriteStream(process.env['OUTPUT_PATH']);

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

    let arr: number[][] = Array(n);

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

    const result: number = diagonalDifference(arr);

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

    ws.end();
}

'알고리즘 풀이' 카테고리의 다른 글

HackerRank - Simple Array Sum  (0) 2024.03.24