728x90
반응형
문제
https://www.acmicpc.net/problem/2669
풀이 방법
나는 단순하게 생각했다.
직사각형 좌표를 입력받고, arr을 돌면서 직사각형 범위안에 있다면 arr의 값을 1로 변경해줬다.
모든 사각형을 돌고나서, 마지막에 arr에 1의 개수를 세어서 출력해줬다.
제출 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BJ_2669_직사각형네개의합집합의면적구하기 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[][] arr = new int[101][101];
for (int i = 0; i < 4; i++) {
String[] str = br.readLine().split(" ");
int x = Integer.parseInt(str[0]);
int y = Integer.parseInt(str[1]);
int p = Integer.parseInt(str[2]);
int q = Integer.parseInt(str[3]);
for (int j = y; j < q; j++) {
for (int k = x; k < p; k++) {
arr[j][k] = 1; //직사각형 범위 안에 있으면 1로
}
}
}
int cnt = 0;
for (int i = 1; i <= 100; i++) {
for (int j = 1; j <= 100; j++) {
if (arr[i][j] == 1) //1의 개수 세기
cnt++;
}
}
System.out.println(cnt);
}
}
728x90
반응형
'알고리즘 > BJ' 카테고리의 다른 글
[BJ] 백준 1244 스위치 켜고 끄기 (JAVA) (0) | 2022.02.24 |
---|---|
[BJ] 백준 10026 적록색약 (JAVA) (0) | 2022.02.23 |
[BJ] 백준 1759 암호만들기 (JAVA) (0) | 2022.02.22 |
[BJ] 백준 1260 DFS와 BFS (JAVA) (0) | 2022.02.21 |
[BJ] 백준 2477 참외밭 (JAVA) (0) | 2022.02.21 |