https://www.acmicpc.net/problem/2563
난이도 : 실버 5
태그 : 구현
설명
처음에는 어떻게 접근할지 고민하다가,
가로 / 세로 크기가 100씩 밖에 되지 않는 작은 범위인 것을 보고,
그냥 2차원 배열 하나 생성해서 색종이로 덮여진 부분만 체크하고,
색종이로 덮인 부분을 카운트해 출력하면 되더군요.
소스코드
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 } })
}
map.sunOf { it.count { it } }) 맵에서 true(색종이로 덮인) 부분을 카운트하는 부분입니다.
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 11399번] [Kotlin] ATM (0) | 2022.12.26 |
---|---|
[백준 11653번] [Kotlin] 소인수분해 (0) | 2022.12.21 |
[백준 4179번] [Kotlin] 불! (0) | 2022.12.14 |
[백준 1253번] [Kotlin] 좋다 (0) | 2022.12.13 |
[백준 25305번] [Kotlin] 커트라인 (0) | 2022.12.13 |