1. 라인스위핑같은거 안써도됨
2. 왜냐? 4개밖에 없고 크기도 작아서
3. 그래서 걍 무식하게 풀었다.
4. 부등호가 < 인 이유는 <= 면 면적이 2배 이상이 되버린다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
import java.io.*; | |
/** | |
* https://www.acmicpc.net/problem/2669 | |
* BOJ 백준온라인져지 2669 직사각형 네개의 합집합의 면적 구하기 풀이 | |
*/ | |
public class Main { | |
private static boolean visited[]; | |
public static void main (String args[]) throws IOException{ | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); | |
int result = 0; | |
int map[][] = new int[101][101]; | |
for (int i = 0; i < 4; i++) { | |
String str1[] = br.readLine().split(" "); | |
int lx = Integer.parseInt(str1[0]); | |
int ly = Integer.parseInt(str1[1]); | |
int rx = Integer.parseInt(str1[2]); | |
int ry = Integer.parseInt(str1[3]); | |
for (; lx < rx; lx++) { | |
for (int j = ly; j < ry; j++) { | |
if (map[lx][j] == 0) { | |
result += map[lx][j] = 1; | |
} | |
} | |
} | |
} | |
bw.write(String.valueOf(result)); | |
bw.flush(); | |
} | |
} |
문제
평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으며, 변이나 꼭지점이 겹칠 수도 있다.
이 직사각형들이 차지하는 면적을 구하는 프로그램을 작성하시오.
입력
입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭지점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각형의 오른쪽 위 꼭지점의 x좌표, y좌표이다. 모든 x좌표와 y좌표는 1이상이고 100이하인 정수이다.
출력
첫 줄에 네개의 직사각형이 차지하는 면적을 출력한다.
'IT > 알고리즘' 카테고리의 다른 글
BOJ 백준온라인져지 15562 네트워크 풀이 (0) | 2018.03.13 |
---|---|
BOJ 백준온라인져지 15565 귀여운 라이언 풀이 (0) | 2018.03.11 |
BOJ 백준온라인져지 2668 숫자고르기 풀이 (0) | 2018.03.10 |
BOJ 백준온라인져지 2667 단지번호붙이기 풀이 (0) | 2018.03.09 |
BOJ 백준온라인져지 13458 시험 감독 풀이 (0) | 2018.03.09 |