문제 출처
- 2019 KOI 1차 중등부 2번
사용 알고리즘
- Prefix-Sum
시간복잡도
- O(N)
풀이
sumX[i]를 x좌표가 i인 곳을 지나는 가로 방향 변의 개수라고 정의합시다.
sumY[i]를 y좌표가 i인 곳을 지나는 세로 방향 변의 개수라고 정의합시다.
가로 방향 변이 시작하는 지점을 x1, 끝나는 지점을 x2라고 하면 sumX[x1]을 1 증가시키고 sumX[x2]를 1 감소시킨 뒤, 누적합을 구해주면 원하는 sumX를 구할 수 있습니다.
같은 방법으로, 세로 방향 변이 시작하는 지점을 y1, 끝나는 지점을 y2라고 하면 sumY[y1]을 1 증가시키고 sumY[y2]를 1 감소시킨 뒤, 누적합을 구해주면 원하는 sumY를 구할 수 있습니다.
sumX의 최댓값과 sumY의 최댓값 중 더 큰 값이 정답이 됩니다.
전체 코드
1 |
|