[코테] HackerRank Diagonal Difference

Dongmin Lee·2023년 5월 22일
0

코테

목록 보기
9/23

💿 문제

💾 문제 요약

행렬 내 두 대각선 상의 요소들의 차를 구해라.

💿 풀이

for문 돌려서 각각의 대각선 상 요소의 합을 구함.
구한 합의 차에 대한 절대값을 Math.abs 매서드를 이용해 구함.

💾 풀이 코드

'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) {
  let prime = 0;
  let second = 0;

  for (let i = 0; i < arr.length; i++) {
    prime += arr[i][i];
    second += arr[i][arr.length - 1 - i];
  }

  let result = Math.abs(prime - second);

  return result;

}

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();
}

💿 리마인더

Math.abs 매서드 용법

profile
어제보다 성장하기

0개의 댓글