반응형
Practice>Algorithms>Warmup>Diagonal Difference
포인트
1. 2중 List (기존 List와 유사하게 사용)
- 삽입 .add(값)
- 사용 .get(INDEX_NUM)
- 수정 .set(INDEX_NUM, 수정값)
2. 절대값 함수
- Math.abs(적용값)
정답.
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
class Result {
/*
* Complete the 'diagonalDifference' function below.
*
* The function is expected to return an INTEGER.
* The function accepts 2D_INTEGER_ARRAY arr as parameter.
*/
public static int diagonalDifference(List<List<Integer>> arr) {
// Write your code here
int array_size = arr.size();
int sum_l_to_r =0;
int sum_r_to_l =0;
for(int i=0; i< array_size ; i++){
sum_l_to_r += arr.get(i).get(i);
sum_r_to_l += arr.get(i).get(array_size-1-i);
}
return Math.abs(sum_l_to_r - sum_r_to_l);
}
}
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
int n = Integer.parseInt(bufferedReader.readLine().trim());
List<List<Integer>> arr = new ArrayList<>();
for (int i = 0; i < n; i++) {
String[] arrRowTempItems = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");
List<Integer> arrRowItems = new ArrayList<>();
for (int j = 0; j < n; j++) {
int arrItem = Integer.parseInt(arrRowTempItems[j]);
arrRowItems.add(arrItem);
}
arr.add(arrRowItems);
}
int result = Result.diagonalDifference(arr);
bufferedWriter.write(String.valueOf(result));
bufferedWriter.newLine();
bufferedReader.close();
bufferedWriter.close();
}
}
반응형
'알고리즘 > 해커랭크' 카테고리의 다른 글
[해커랭크002] A Very Big Sum (0) | 2019.11.07 |
---|---|
[해커랭크001] Compare the Triplets (0) | 2019.11.07 |