코딩테스트 풀이/JAVA
[LeetCode/Easy] 598. Range Addition II
무지맘
2022. 12. 4. 23:51
1. Input
1) 정수 m
2) 정수 n
3) 1씩 증가해야 하는 구간을 나라낸 2차원 배열 ops
2. Output
1) m행 n열의 2차원 배열의 요소가 모두 0일 때, ops에 따라 값을 증가시킨 후 그 배열에서 가장 큰 값이 몇 개인지 반환
2) ops[0] = {2,2}라면, 0행 0열의 요소를 기준으로 가로 2, 세로 2의 정사각형을 그렸을 때 그 안에 속하는 4개의 값(0행 0열, 0행 1열, 1행 0열, 1행 1열)을 전부 1씩 증가시켜야 한다.
3. Constraint
1) 1 <= m, n <= 4 * 104
2) 0 <= ops.length <= 104
3) ops[i].length == 2
4) 1 <= ai <= m
5) 1 <= bi <= n
4. Example
Input: m=3, n=3, ops={{2,2},{3,3}} -> Output: 4
설명: {2,2}에 속하는 4개의 값을 1씩 증가시키고, 그 다음 {3,3}에 속하는 9개의 값을 증가시키면 가장 큰 값은 2가 되고, 2는 4개가 있으므로 4를 반환한다.
5. Code
1) 첫 코드(2022/07/13)
if(ops.length==0)
return m*n;
int mr=ops[0][0], mc=ops[0][1];
for(int i=0 ; i<ops.length ; i++){
if(ops[i][0]<mr) mr = ops[i][0];
if(ops[i][1]<mc) mc = ops[i][1];
}
return mr*mc;