
1) 배열의 값을 Arrays.sort를 통해 행(row)을 기준으로 오름차순 정렬한다.
2) row와 col은 각각 행(row)과 열(column)을 의미한다.
3) col(열)을 기준으로 탐색하면서, 각 열에서 최대값을 찾기 위해 행(row)을 두 번째 반복문으로 돌린다.
4) 각 열에서 최대값을 구한 뒤, 이를 결과값(result)에 더하여 반환한다.
문제를 해결 할 때 다양한 방법으로 할 수 있다.
class Solution {
public int deleteGreatestValue(int[][] grid) {
int m = grid.length;
int n = grid[0].length;
int result = 0;
for (int i = 0; i < grid.length; i++) {
Arrays.sort(grid[i]);
}
for(int col = n-1; col >= 0; col-- ){
int maxInColumn = 0;
for(int row = 0; row<m; row++){
maxInColumn = Math.max(maxInColumn, grid[row][col]);
}
result += maxInColumn;
}
return result;
}
}