[BOJ 25210] 백준 25210번 - 정사각형 세기
1. 문제
$25210$. 정사각형 세기 (2022 인하대학교 프로그래밍 경진대회(IUPC) F번)
2. 풀이
- 원점에 가까운 좌표 네 개로
minLx
,minRx
,minUy
,minDy
를 구한다. - 원점에 먼 좌표 네 개로
maxLx
,maxRx
,maxUy
,maxDy
를 구한다. - 위의 여덟 좌표를 이용하여 만들 수 있는 최소 크기 정사각형의 한 변의 길이
minlen
, 만들 수 있는 최대 크기 정사각형의 한 변의 길이maxlen
을 구한다.
- 특정
len
크기의 정사각형이 왼쪽(left)에서 움직일 수 있는 범위를 구하고, 그 길이를 알아낸다. 마찬가지로 right, up, down에 대해서도 수행한다. max(0, min(left, right)) * max(0, min(up, down))
값을 계산하여 현재len
의 정사각형이 가능한 개수를 구한다.minlen
과maxlen
사이의 모든 각각의len
에 대해 아래 작업을 수행하며 누적합을 구한다.
3. 채점 결과
4. 회고
생각이 정리되기까지 꽤 많은 시간이 걸렸다. 그림으로는 부족해서 직접 파워포인트에서 사각형을 움직여가며 범위를 생각했다.
maximum 값을 0으로 설정하지 않아 음수 값이 도출되어 WA를 받았다.
댓글남기기