티스토리 뷰
728x90
문제 풀이 과정
크루스칼 풀이 방법을 그대로 적용하면 되는 문제이다.
크루스칼을 적용하기 전에 한단계 준비 작업이 필요하다. 주어진 데이터는 별들의 좌표만 주어지기 때문에 서로 다른 별들의 거리를 먼저 구한 다음 크루스칼을 적용하면 된다.
두점 사이의 거리 구하는 방법이다.
public static double dist (Point p1, Point p2){
return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
}
별들의 좌표는 Point class 를 별도로 구현하였다.
public static class Point{
double x;
double y;
int idx;
public Point(double x, double y, int idx) {
this.x = x;
this.y = y;
this.idx = idx;
}
}
거리를 구한 좌표를 관리하기 위해서 Edge class 를 사용하였다.
public static class Edge implements Comparable<Edge> {
int start;
int end;
double v;
public Edge(int start, int end, double v) {
this.start = start;
this.end = end;
this.v = v;
}
@Override
public int compareTo(Edge o) {
if(this.v < o.v){
return -1;
}
else{
return 1;
}
}
}
전체 코드
728x90
'Algorithm > Baekjoon' 카테고리의 다른 글
백준 1484번 - 다이어트 (JAVA) (0) | 2023.01.17 |
---|---|
백준 2437번 - 저울 (JAVA) (0) | 2023.01.17 |
백준 11399번 - ATM (JAVA) (0) | 2022.12.16 |
백준 1707번 - 이분그래프(JAVA) (0) | 2022.12.16 |
백준 1325번 - 효율적인 해킹 (JAVA) (0) | 2022.12.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코테 준비
- 개발자 취업 준비
- 코테공부
- 기술 면접 준비
- 프로그래머스 자바
- 코딩테스트 공부
- 취업 준비
- 백준
- 제로베이스 백준 장학금
- 취업준비
- 개발자 취준
- 코테준비
- 알고리즘 공부
- 취준
- 프로그래머스
- 주니어 개발자 취업 준비
- 백엔드 개발자 취업 준비
- 제로베이스 백엔드 스쿨
- 백엔드 개발자
- 코딩테스트 준비
- 알고리즘
- 코딩테스트
- 자바
- 프로그래머스 카카오
- 자바공부
- 알고리즘공부
- 코딩테스트공부
- 개발자 면접 준비
- java
- 백엔드 개발자 기술 면접 준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함