https://www.acmicpc.net/problem/14658
[풀이]
처음에는 4가지 방향으로 체크를 하여 풀려고 했으나.
틀렸다. 그 이유는
*
* *
*
위와 같은 경우를 고려하지 않았기 때문이다.
그래서 두 지점을 공유하도록 하여서 풀었다.
[코드]
import kotlin.math.max
var N = 0
var M = 0
var L = 0
var K = 0
lateinit var star : ArrayList<coordinate>
data class coordinate(val x : Int, val y : Int)
fun main()
{
var tmp = readLine()!!.split(" ").map {it.toInt()}
N = tmp[0]
M = tmp[1]
L = tmp[2]
K = tmp[3]
star = ArrayList()
var ans = 0
repeat(K)
{
i ->
var tmp = readLine()!!.split(" ").map {it.toInt()}
star.add(coordinate(tmp[0], tmp[1]))
}
for(i in 0 until K)
{
for(j in 0 until K)
{
var cnt = 0
for(k in 0 until K)
{
val x = star[i].x
val y = star[j].y
if(star[k].x in x..x+L && star[k].y in y..y+L) cnt++
}
ans = max(ans, cnt)
}
}
println(K - ans)
}
'백준 > 기타' 카테고리의 다른 글
백준 [9935] kotlin (0) | 2023.01.19 |
---|---|
백준 [1043] kotlin (0) | 2023.01.13 |
백준 [12919] kotlin (0) | 2023.01.08 |
백준 14719 [kotlin] (0) | 2022.07.06 |
백준 1038 [kotlin] (0) | 2022.07.06 |