문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
m x n 이진 행열 mat이 주어지고, 인덱스가 0부터 시작하고 1의 개수가 가장 많은 행의 위치와 해당 행에 포함된 1의 개수를 구해라.
1의 개수가 최대인 행이 여러 개인 경우, 행의 번호가 가장 작은 행을 선택히야 한다.
행의 인덱스와 그 행에 포함된 1의 개수를 포함한 배열을 반환해라.
#1
Input: mat = [[0, 1], [1, 0]]
Output: [0, 1]
Explanation: 행 둘 다 1의 개수가 같다. 그래서 가장 작은 행의 인덱스 0과 1이 가장 많은 개수 1을 반환한다. 그래서 답은 [0, 1]이다.
#2
Input: mat = [[0, 0, 0], [0, 1, 1]]
Output: [1, 2]
Explanation: 인덱스가 1인 행이 1이 가장 많은 개수 2를 가진다. 그래서 인덱스 1과 갯수를 반환한다. 그래서 답은 [1, 2]이다.
#3
Input: mat = [[0, 0], [1, 1], [0, 0]]
Output: [1, 2]
Explanation: 인덱스가 1인 행이 1의 가장 많은 개수 2를 가진다. 그래서 답은 [1, 2]이다.
class Solution {
public int[] rowAndMaximumOnes(int[][] mat) {
int row = -1;
int max = -1;
for(int i = 0; i < mat.length; i++){
int now = 0;
for(int num : mat[i]){
now += num;
}
if(now > max){
max = now;
row = i;
}
}
return new int[] {row, max};
}
}