코린이의 소소한 공부노트

[LeetCode/Easy] 598. Range Addition II 본문

코딩테스트 풀이/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) mn열의 2차원 배열의 요소가 모두 0일 때, ops에 따라 값을 증가시킨 후 그 배열에서 가장 큰 값이 몇 개인지 반환

2) ops[0] = {2,2}라면, 00열의 요소를 기준으로 가로 2, 세로 2의 정사각형을 그렸을 때 그 안에 속하는 4개의 값(00, 01, 10, 11)을 전부 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;