목록기하학 (5)
기록방
👉 문제링크 2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net 🔸 문제 분석 🔸 N개의 꼭지점으로 이루어진 다각형의 정보가 주어진다. 다각형의 넓이(면적)을 소수점 둘째 자리에서 반올림하여 첫째 자리까지 출력한다. 🔸 문제 풀이 🔸 신발끈 공식 (Shoelace formula)의 전형적인 연습 문제이다. x좌표와 y좌표를 입력받아 공식을 구현하고, 소수점 첫째 자리까지 반올림해 출력한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io...
👉 문제링크 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 🔸 문제 분석 🔸 시작점과 끝점을 선으로 이을때 최소로 통과하는 행성계의 수를 출력한다. 반드시 통과해야하는 행성계는 시작점, 끝점 중 하나를 원 안에 포함하고 다른 한 점이 밖에 있어야한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t ..
👉 문제링크 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 🔸 문제 분석 🔸 두 원의 좌표와 반지름을 입력받고 원의 접점의 수를 출력한다. 0 : 접점이 없음 1 : 내접 혹은 외접으로 1개의 접점 2 : 2개의 접점 -1 : 접점이 무한(일치하는 두 원) 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void..
👉 문제링크 1064번: 평행사변형 평행사변형은 평행한 두 변을 가진 사각형이다. 세 개의 서로 다른 점이 주어진다. A(xA,yA), B(xB,yB), C(xC,yC) 이때, 적절히 점 D를 찾아서 네 점으로 평행사변형을 만들면 된다. 이때, D가 여러 개 나 www.acmicpc.net 🔸 문제 분석 🔸 세 점의 좌표가 주어지면, 만들 수 있는 평행사변형 중 가장 큰 너비에서 가장 작은 너비를 뺀 값을 출력한다. 세 점으로 그릴 수 있는 평행사변형은 3가지가 나오는데, 그 중 2가지는 같을 수 있다. 평행사변형을 만들 수 없는 경우는 세 점이 한 직선위에 존재할 때이다. 두 점의 기울기 (x증가량/y증가량)을 확인해서, 기울기가 같으면(한 선분 위에 존재하면) -1.0 을 출력한다. 그릴 수 있는 평..
👉 문제링크 17093번: Total Circle 좌표평면상의 점의 배열 P = P1, P2, ⋯, PN와 Q = Q1, Q2, ⋯, QM이 있다. Q 배열 상의 한 점을 중심으로, P 배열 상의 모든 점을 포함하는 최소 넓이의 원의 반지름 중 최댓값을 구하시오. www.acmicpc.net 🔸 문제 분석 🔸 한 점을 중점으로 여러 좌표를 지나는 원은 타원모양까지 생각하면 무수히 많다. 문제 조건에서 최소크기의 원의 최대 반지름이라 했으므로, 중점과 가장 먼 좌표까지의 거리다. 모든 중점에서 구한 반지름의 최대값들 중에서 가장 큰 값을 출력한다. 최대값 찾기가 2번있는 셈이고, for문이 중첩되어 한 번씩 비교하는 형태이다. n, m의 최대값은 1000이므로 O(n^2)에서 최대 계산량은 1,000,00..