Algorithm/Divide & Conquer

📌 문제 2차원 평면상에 n개의 점이 주어졌을 때, 이 점들 중 가장 가까운 두 점을 구하는 프로그램을 작성하시오. 📌 입력 첫째 줄에 자연수 n(2 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 차례로 각 점의 x, y좌표가 주어진다. 각각의 좌표는 절댓값이 10,000을 넘지 않는 정수이다. 여러 점이 같은 좌표를 가질 수도 있다. 📌 출력 첫째 줄에 가장 가까운 두 점의 거리의 제곱을 출력한다. 📌 문제 풀이 👨‍🏫 접근 너무 어려웠다. 일단 이걸 어떻게 분할해서 풀어야할지가 고민이 되었다. 그런데 생각보다 분할은 그렇게 어려운 게 아니었다. 이 문제는 3번의 탐색 과정을 거친다. 좌표들을 일단 x값을 기반으로 정렬을 해준 다음, 첫 좌표와 끝 좌표의 중간을 구해준다. 첫 번째 탐색은 ..
📌 문제 아래 과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다. 전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 의 I, II, III, IV와 같이 똑같은 크기의 네 개의 N/2 × N/2색종이로 나눈다. 나누어진 종이 I, II, III, IV 각각에 대해서도 앞에서와 마찬가지로 모두 같은 색으로 칠해져 있지 않으면 같은 방법으로 똑같은 크..
턴태
'Algorithm/Divide & Conquer' 카테고리의 글 목록