티스토리 뷰
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 |
글 보관함