문제
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 |