[문제]
[문제 설명]
- 배열에서 교차되는 수 2개(왼쪽에서 오른쪽 대각선 방향, 오른쪽에서 왼쪽 대각선 방향)의 합의 절댓값을 구하기
[문제 풀이]
- for문을 사용하여 더해지는 배열 대각선 방향의 합을 구함
> 왼쪽에서 오른쪽 방향 대각선의 합은: arr[i][i]를 사용하여 구할 수 있음
> 오른쪽에서 왼쪽 방향 대각선의 합은: arr[i][size-1-i]를 사용하여 구할 수 있음
* 이때 size는 배열의 행 혹은 열의 크기임 (정사각형 모양의 배열이기 때문에 크기가 같음)
[코드]
int diagonalDifference(vector<vector<int>> arr) {
int sum1=0, sum2=0;
for(int i=0;i<arr.size();i++){
sum1+=arr[i][i];
}
for(int j=0;j<arr.size();j++){
sum2+=arr[j][arr.size()-1-j];
}
if(sum1-sum2<0) return sum2-sum1;
else return sum1-sum2;
}
[실행결과]
'CODE > HackerRank' 카테고리의 다른 글
[C++] HackerRank : Equal Stacks (0) | 2021.10.03 |
---|---|
[C++] HackerRank : Simple Array Sum (0) | 2021.09.21 |
[C++] HackerRank : Time Conversion (0) | 2021.09.19 |
[C++] HackerRank : Left Rotation (0) | 2021.09.19 |
[C++] HackerRank : Correctness and the Loop Invariant (0) | 2021.09.12 |