-
알고리즘 - 10주 완성 알고리즘 코딩테스트 (코딩몬스터) : 데스티니Dev/알고리즘 2021. 10. 7. 00:04
이직하고 리액트, 엘라스틱서치, 노드js를 공부하고 개발하느라 블로그에도 소홀해지고 알고리즘 공부도 하지 못하였다. 대신 자바스크립트나 리액트에 대하여 많은 공부를 할 수 있었던 것 같다.
코딩몬스터 님이 구름에듀에서 진행하는 알고리즘 코딩테스트 강의가 개편되고 있어 다시 강의를 듣기 시작하였다.
문제를 유출할 수 없으니 앞으로 내가 풀었던 문제들의 정답만 올리도록 하겠다.
문제2F - 데스티니 import java.io.*; import java.lang.*; import java.util.*; public class Main { public static final Scanner scanner = new Scanner(System.in); public static void main(String[] args) { int n = scanner.nextInt(); Point2D[] points = new Point2D[n]; for(int i = 0 ; i < n ; i++) { int x= scanner.nextInt(); int y= scanner.nextInt(); points[i] = new Point2D(x, y); } double mind = 1000000000; int cnt = 0; for(int i = 0 ; i < n ; i++) { for(int j = i+1 ; j< n ; j++){ double sqd = points[i].getDistanceTo(points[j]); if(sqd < mind) { mind = sqd; cnt= 1; } else if(sqd == mind) { cnt++; } } } System.out.println(String.format("%.1f", mind)); System.out.println(cnt); } } class Point2D{ int x; int y; public Point2D(int x, int y) { this.x = x; this.y = y; } /** * 2차원 평면 상에서 점 this부터 점 target까지 거리의 제곱을 계산하는 함수 * @param target * @return */ public int getSquaredDistanceTo(Point2D target) { int dx = Math.abs(target.x - this.x); int dy = Math.abs(target.y - this.y); return dx * dx + dy * dy; } public double getDistanceTo(Point2D target) { double sqd = (double) this.getSquaredDistanceTo(target); return Math.sqrt(sqd); } }
'Dev > 알고리즘' 카테고리의 다른 글
알고리즘 - 10주 완성 알고리즘 코딩테스트 (코딩몬스터) : 버블정렬 구현하기 (0) 2021.10.07 알고리즘 - 최대공약수 : 유클리드 호제법(Euclidean algorithm) GCD (0) 2021.05.03 알고리즘 - 완전 탐색(Brute-Force Search) : 무차별 대입 (0) 2021.03.11