알고리즘 dp, two_pointer 시간복잡도 $O(NlogN)$ 풀이 현재 점 왼쪽의 모든 점을 연쇄적으로 터뜨릴 수 있는 최솟값을 $dpl[i]$, 마찬가지로 오른쪽의 경우 $dpr[j]$로 구한다. 임의의 두 점에 대하여 두 점 사이 거리의 절반, 앞에서 구한 $dpl, dpr$ 값들 중 최댓값이 전체 최솟값 후보일 것이다. 이를 $O(N^2)$로 구하면 시간초과가 나기에 맨 끝에서부터 two pointer로 관리해주면 된다. (dp값이 작은 것을 밀도록) 코드 #include using namespace std; int N, a[50005], dpl[50005], dpr[50005]; int ans = 2e9; int main() { cin>>N; for (int i = 1; i >a[i]; a..