
알고리즘 분류 : 구현
난이도 : 실버5
출처 : 백준 - 투명


100 X 100 크기의 배열을 선언하고 2중 for문을 이용해 범위에 해당하는 부분에 +1 해준다.
모든 칸에 값을 확인해 M보다 큰 값의 갯수를 구한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int arr[][] = new int[101][101];
for(int i=0;i<N;i++) {
st = new StringTokenizer(br.readLine()," ");
int x1 = Integer.parseInt(st.nextToken());
int y1 = Integer.parseInt(st.nextToken());
int x2 = Integer.parseInt(st.nextToken());
int y2 = Integer.parseInt(st.nextToken());
for(int j=x1;j<=x2;j++) {
for(int k=y1;k<=y2;k++) {
arr[j][k] +=1;
}
}
}
int cnt=0;
for(int i=1;i<=100;i++) {
for(int j=1;j<=100;j++) {
if(arr[i][j]>M) cnt++;
}
}
System.out.println(cnt);
}
}

3중 for문을 사용해야 해서 잘못 푼줄 알았지만 배열의 크기가 100X100으로 한정되어 있어서 시간이 오래걸리지 않았다.