Skip to content
Programming101
Programmingoneonone

Learn everything about programming

  • Home
  • CS Subjects
    • IoT – Internet of Things
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programming101
Programmingoneonone

Learn everything about programming

HackerRank Diagonal Difference problem solution

YASH PAL, 31 July 20243 May 2025

In this HackerRank Diagonal Difference problem solution Given a square matrix, calculate the absolute difference between the sums of its diagonals.

For example, the square matrix arr is shown below:

1 2 3

4 5 6

9 8 9  

The left-to-right diagonal = 1+5+9 = 15. The right to left diagonal = 3+5+9=17. Their absolute difference is |15-17| = 2.

Function description

Complete the diagonalDifference function in the editor below.

diagonalDifference takes the following parameter:

  • int arr[n][m]: an array of integers

Return

  • int: the absolute diagonal difference

Input Format

The first line contains a single integer, n, the number of rows and columns in the square matrix arr.

Each of the next n lines describes a row, arr[i], and consists of  space-separated integers arr[i][j].

Constraints

-100 <= arr[i][j] <= 100

Output Format

Return the absolute difference between the sums of the matrix’s two diagonals as a single integer.

HackerRank diagonal difference solution
HackerRank diagonal difference solution

HackerRank diagonal difference problem solution in Python.

#!/bin/python3

import math
import os
import random
import re
import sys

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

def diagonalDifference(arr):
    temp = 0
    emp = 0
    for i in range(0,len(arr)):
        temp = temp + arr[i][i]
    
    for j in range(0,len(arr)):
        emp = emp + arr[j][len(arr)-1-j]
    
    return abs(temp - emp)



if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(input().strip())

    arr = []

    for _ in range(n):
        arr.append(list(map(int, input().rstrip().split())))

    result = diagonalDifference(arr)

    fptr.write(str(result) + 'n')

    fptr.close()

Problem solution in Java Programming.

import java.util.Scanner;

public class DiagonalDifferernce {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in); 
		int n ;
		int diag1 = 0 ; int diag2 = 0;
		n = Integer.parseInt(in.nextLine());
		for(int i =0 ; i < n; i++){
			String str[] = in.nextLine().split(" ");
			diag1 = diag1 + Integer.parseInt(str[i]);
			diag2 = diag2 + Integer.parseInt(str[n-1-i]);
		}
		
		int diagDiff = Math.abs(diag1 -  diag2);		
		System.out.println(diagDiff);
	}	
}

 

Problem solution in C++ programming.

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */   
    int matrix[100][100];
    int i;
    cin>>i;
    for(int x=0;x<i;x++){
        for(int y=0;y<i;y++){
            cin>>matrix[x][y];
        }
    }
   int diag1,diag2;
diag1=0;diag2=0;
    for(int x=0;x<i;x++)
        {
        diag1=diag1+matrix[x][x];
    }
    for(int x=i-1;x>-1;x--)
        {
       
        diag2=(diag2+matrix[i-x-1][x]);   
    }
    int diff = diag1-diag2;
    if(diff<0){
        cout<<-(diff);
    }
    else
        cout<<diff;
    
    return 0;
}

 

Problem solution in C programming.

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {

    int n,a[100][100],i,j,d1=0,d2=0,dif;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {    
            scanf("%d",&a[i][j]);    
            if(i==j)
            d1=d1+a[i][j];    
            if(i==(n-j-1))    
            d2=d2+a[i][j];
        }
    }
    dif=abs(d1-d2);
    printf("%d",dif);
    return 0;
}

 

Problem solution in JavaScript programming.

function processData(input) {
    var rightDia = 0;
    var leftDia = 0;
    var inputArray = input.split("n");
    var squareSize = parseInt(inputArray.shift() - 1);
    for (var i = 0; i < inputArray.length; i++) {
        var row = inputArray[i].split(" ");
        rightDia += parseInt(row[i]);
        leftDia += parseInt(row[squareSize]);
        squareSize--;
    }
    console.log(Math.abs(rightDia - leftDia));
} 

process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
    _input += input;
});

process.stdin.on("end", function () {
   processData(_input);
});

Other problems solutions

  • HackerRank Plus minus problem solution
  • HackerRank Mini-Max sum problem solution
  • HackerRank Birthday cake candles problem solution
  • HackerRank Time conversion problem solution
  • HackerRank Grading students problem solution
Algorithms coding problems solutions AlgorithmsHackerRank

Post navigation

Previous post
Next post
  • Automating Image Format Conversion with Python: A Complete Guide
  • HackerRank Separate the Numbers solution
  • How AI Is Revolutionizing Personalized Learning in Schools
  • GTA 5 is the Game of the Year for 2024 and 2025
  • Hackerrank Day 5 loops 30 days of code solution
How to download udemy paid courses for free

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes