https://www.acmicpc.net/problem/2563
난이도 : 실버 5
태그 : 구현
설명
도화지 위에 색종이를 붙였을 때, 색종이의 전체 크기를 출력하는 문제입니다.
어떻게 풀까 고민을 좀 해봤는데,
도화지의 가로, 세로의 크기가 100밖에 되지 않는 것을 보고
그냥 100 x 100인 2차원 boolean 배열을 만든 뒤,
색종이로 덮인 부분을 true로 처리하여
최종적으로 true인 부분의 개수만 카운팅하여 출력하면 될 것 같습니다.
소스코드
fun main() = with(System.`in`.bufferedReader()) {
val n = readLine().toInt()
val map = Array(101) { Array(101) { false } }
repeat(n) {
val (p1, p2) = readLine().split(" ").map { it.toInt() }
repeat(10) { dx ->
repeat(10) { dy ->
map[p1 + dx][p2 + dy] = true
}
}
}
println(map.sumOf { it.count { it } })
}
후기
어떻게 해야하나 고민을 좀 했었는데,
그냥 배열 하나 선언해두고, 덮인 부분은 그냥 true 처리할까?라는 생각이 들었고,
범위를 보고 확신했습니다.
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 25585번] [Java, Kotlin] 86 ─에이티식스─ 1 (0) | 2023.08.16 |
---|---|
[백준 1331번] [Kotlin] 나이트 투어 (0) | 2023.08.04 |
[백준 16985번] [Kotlin] Maaaaaaaaaze (0) | 2023.07.30 |
[백준 5648번] [Kotlin] 역원소 정렬 (0) | 2023.07.19 |
[백준 1904번] [Kotlin] 01타일 (0) | 2023.07.15 |