문제
2669번: 직사각형 네개의 합집합의 면적 구하기
평면에 네 개의 직사각형이 놓여 있는데 그 밑변은 모두 가로축에 평행하다. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함할 수도 있으
www.acmicpc.net

풀이
문제에서 주어진 100 x 100 크기의 영역에 대한 Boolean 배열을 생성한다. 입력받은 좌표에 해당하는 사각형 영역을 true로 배열에 저장해준다. 그리고나서 배열에서 true의 부분의 개수를 세어 면적을 구할 수 있다.
코드
import java.util.* fun main() { val br = System.`in`.bufferedReader() val bw = System.out.bufferedWriter() val map = Array(100){ BooleanArray(100) } repeat(4) { with(StringTokenizer(br.readLine())) { val x1 = nextToken().toInt() val y1 = nextToken().toInt() val x2 = nextToken().toInt() val y2 = nextToken().toInt() for(i in x1 until x2) { for(j in y1 until y2) { map[i][j] = true } } } } var cnt = 0 map.forEach { it.forEach { painted -> if(painted) cnt++ } } bw.write("$cnt") bw.flush() bw.close() br.close() }
'알고리즘 > Baekjoon' 카테고리의 다른 글
[백준] 1449번: 수리공 항승 - Kotlin[코틀린] (0) | 2023.12.17 |
---|---|
[백준] 13023번: ABCDE - Kotlin[코틀린] (0) | 2023.12.16 |
[백준] 1339번: 단어 수학 - Kotlin[코틀린] (0) | 2023.12.11 |
[백준] 2346번: 풍선 터트리기 - Kotlin[코틀린] (0) | 2023.12.11 |
[백준] 2504번: 괄호의 값 - Kotlin[코틀린] (0) | 2023.12.05 |