전체 글

import { Dream } from "future";
📌 문제 민혁이는 소셜 네트워크 사이트에서 친구를 만드는 것을 좋아하는 친구이다. 우표를 모으는 취미가 있듯이, 민혁이는 소셜 네트워크 사이트에서 친구를 모으는 것이 취미이다. 어떤 사이트의 친구 관계가 생긴 순서대로 주어졌을 때, 두 사람의 친구 네트워크에 몇 명이 있는지 구하는 프로그램을 작성하시오. 친구 네트워크란 친구 관계만으로 이동할 수 있는 사이를 말한다. 📌 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진다. 친구 관계는 두 사용자의 아이디로 이루어져 있으며, 알파벳 대문자 또는 소문자로만 이루어진 길이 20 이하의 문자열이다. 📌 출..
📌 문제 초기에 {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가 같은 집합에 포함되어 있는지를 확인하는 연산이다..
📌 문제 2차원 평면상에 n개의 점이 주어졌을 때, 이 점들 중 가장 가까운 두 점을 구하는 프로그램을 작성하시오. 📌 입력 첫째 줄에 자연수 n(2 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 차례로 각 점의 x, y좌표가 주어진다. 각각의 좌표는 절댓값이 10,000을 넘지 않는 정수이다. 여러 점이 같은 좌표를 가질 수도 있다. 📌 출력 첫째 줄에 가장 가까운 두 점의 거리의 제곱을 출력한다. 📌 문제 풀이 👨‍🏫 접근 너무 어려웠다. 일단 이걸 어떻게 분할해서 풀어야할지가 고민이 되었다. 그런데 생각보다 분할은 그렇게 어려운 게 아니었다. 이 문제는 3번의 탐색 과정을 거친다. 좌표들을 일단 x값을 기반으로 정렬을 해준 다음, 첫 좌표와 끝 좌표의 중간을 구해준다. 첫 번째 탐색은 ..
AWS로 배포를 해보려고 합니다. 일단 AWS에서 EC2를 사용하겠습니다. AWS에 로그인한 후에 서비스-컴퓨팅-EC2로 접근합니다. 그다음 좌측 네비게이션에서 인스턴스를 클릭합니다. 여기서 인스턴스 시작을 누릅니다. 이전에 실습한 강의가 있어서 저는 하나가 이미 있습니다. 인스턴스 이름을 작성하고 OS이미지는 우분투를 사용하겠습니다. 키페어도 사용하고 싶은 대로 만듭니다. 인스턴스를 생성하면 각종 IP 주소가 나옵니다. 이 퍼블릭 IP로 접근할 수도 있지만 고정된 아이피 값이 아니기 때문에 고정된 아이피를 생성해주는 것이 편합니다. 다시 좌측에서 탄력적 IP를 선택합니다. 우측 상단 탄력적 IP 주소 할당을 눌러서 기본 세팅대로 할당을 받습니다. 만든 후에는 해당 아이피 주소를 눌러서 작업에 있는 탄력..