어흥
[해커랭크] 2D Array - DS (C++) 본문
728x90
반응형
2D Array - DS | HackerRank
How to access and use 2d-arrays.
www.hackerrank.com
1. 주의할 점
- H가 90도 뒤집어진 모양의 합을 어떻게 구할 것인가
- 정답이 음수일 수도 있다
2. 구현
- H의 중심점을 기준으로 상하좌우 최대 1칸씩만 떨어져있다. 따라서 중심점을 기준으로 Arr[][] 배열을 탐색할 때, 1~Row-1, 1~Col-1까지만 계산한다
- dx[], dy[] 배열을 통해 중심으로부터 H모양에 해당하는 7개의 점을 찾고, 그에 해당하는 숫자를 합한다
int dx[7]={-1,0,1,0,-1,0,1};
int dy[7]={-1,-1,-1,0,1,1,1};
int hourglassSum(vector<vector<int>> arr) {
int result = -987654321;
for(int i=1;i<arr.size()-1;i++){
for(int j=1;j<arr[0].size()-1;j++){
int temp =0;
for(int k=0;k<7;k++){
int nx = j+dx[k];
int ny = i+dy[k];
temp+=arr[ny][nx];
}
result = max(result,temp);
}
}
return result;
}
728x90
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
[해커랭크] Minimum Swaps 2 (C++) (0) | 2021.02.05 |
---|---|
[해커랭크] Arrays: Left Rotation (C++) (0) | 2021.02.03 |
[해커랭크] Find the nearest clone (C++) (0) | 2021.02.03 |
[해커랭크] Queue using Two Stacks (C++) (0) | 2021.02.03 |
[해커랭크] Truck Tour (C++) (0) | 2021.02.02 |
Comments