📌 문제 초기에 {0}, {1}, {2}, ... {n} 이 각각 n+1개의 집합을 이루고 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작성하시오. 📌 입력 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 a가 포함되어 있는 집합과, b가 포함되어 있는 집합을 합친다는 의미이다. 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산은 1 a b의 형태로 입력이 주어진다. 이는 a와 b가 같은 집합에 포함되어 있는지를 확인하는 연산이다..
ROOT
📌 문제 2차원 평면상에 n개의 점이 주어졌을 때, 이 점들 중 가장 가까운 두 점을 구하는 프로그램을 작성하시오. 📌 입력 첫째 줄에 자연수 n(2 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 차례로 각 점의 x, y좌표가 주어진다. 각각의 좌표는 절댓값이 10,000을 넘지 않는 정수이다. 여러 점이 같은 좌표를 가질 수도 있다. 📌 출력 첫째 줄에 가장 가까운 두 점의 거리의 제곱을 출력한다. 📌 문제 풀이 👨🏫 접근 너무 어려웠다. 일단 이걸 어떻게 분할해서 풀어야할지가 고민이 되었다. 그런데 생각보다 분할은 그렇게 어려운 게 아니었다. 이 문제는 3번의 탐색 과정을 거친다. 좌표들을 일단 x값을 기반으로 정렬을 해준 다음, 첫 좌표와 끝 좌표의 중간을 구해준다. 첫 번째 탐색은 ..
AWS로 배포를 해보려고 합니다. 일단 AWS에서 EC2를 사용하겠습니다. AWS에 로그인한 후에 서비스-컴퓨팅-EC2로 접근합니다. 그다음 좌측 네비게이션에서 인스턴스를 클릭합니다. 여기서 인스턴스 시작을 누릅니다. 이전에 실습한 강의가 있어서 저는 하나가 이미 있습니다. 인스턴스 이름을 작성하고 OS이미지는 우분투를 사용하겠습니다. 키페어도 사용하고 싶은 대로 만듭니다. 인스턴스를 생성하면 각종 IP 주소가 나옵니다. 이 퍼블릭 IP로 접근할 수도 있지만 고정된 아이피 값이 아니기 때문에 고정된 아이피를 생성해주는 것이 편합니다. 다시 좌측에서 탄력적 IP를 선택합니다. 우측 상단 탄력적 IP 주소 할당을 눌러서 기본 세팅대로 할당을 받습니다. 만든 후에는 해당 아이피 주소를 눌러서 작업에 있는 탄력..
📌 문제 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으며, 각 지점 사이의 이동은 지도에서 상하좌우 이웃한 곳끼리만 가능하다. 현재 제일 왼쪽 위 칸이 나타내는 지점에 있는 세준이는 제일 오른쪽 아래 칸이 나타내는 지점으로 가려고 한다. 그런데 가능한 힘을 적게 들이고 싶어 항상 높이가 더 낮은 지점으로만 이동하여 목표 지점까지 가고자 한다. 위와 같은 지도에서는 다음과 같은 세 가지 경로가 가능하다. 지도가 주어질 때 이와 같이 제일 왼쪽 위 지점에서 출발하여 제일 오른쪽 아래 지점까지 항상 내리막길로만 이동하는 경로의 개수를 구하는 프로그램을 작성하시오. 📌 ..