남극 기지 질문입니다! 제 생각에는 맞는거 같은데요... ㅠㅠ Baek 안녕하세요~ 남극 기지를 풀고 있는데요~ 알고리즘은 일단 맞는것 같습니다.(풀고 나서 인터넷 뒤져보니 나오더군요) 다른점이 있다면 인터넷에서 찾은것은 각 기지들의 모든 거리를 저장하여 트리를 구성한 후 각 기지에서 가장 근접한 기지의 거리들 중, 가장 긴 거리를 찾고 있는거 같구요 제가 작성한 것은 각 기지에서 모든 기지의 거리를 구할 때, 각 기지에서 가장 가까운 기지의 거리만 들고 있다가, (트리 구성 안함) 그 중에서 가장 긴 거리를 출력했거든요... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static long MAX = 1000; public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int 테스트케이스 = Integer.parseInt(in.readLine()); while(테스트케이스-- != 0) { int 모든_점의_갯수 = Integer.parseInt(in.readLine()); double[][] 모든_점들의_위치 = new double[모든_점의_갯수][2]; for(int i = 0; i < 모든_점의_갯수; i++) { String[] ret = in.readLine().split(" "); 모든_점들의_위치[i][0] = Double.parseDouble(ret[0]); 모든_점들의_위치[i][1] = Double.parseDouble(ret[1]); } double 가장_먼_거리_즉_결과 = 0; double[] 해당_점에서_가장_가까운_점과의_거리 = new double[모든_점의_갯수]; for(int i = 0; i < 모든_점의_갯수; i++) { 해당_점에서_가장_가까운_점과의_거리[i] = Double.MAX_VALUE; for(int j = i + 1; j < 모든_점의_갯수; j++) { double 특정_두_점끼리의_거리 = Math.pow((모든_점들의_위치[i][0] - 모든_점들의_위치[j][0]), 2) + Math.pow((모든_점들의_위치[i][1] - 모든_점들의_위치[j][1]), 2); if(해당_점에서_가장_가까운_점과의_거리[i] > 특정_두_점끼리의_거리) { 해당_점에서_가장_가까운_점과의_거리[i] = 특정_두_점끼리의_거리; } } if(해당_점에서_가장_가까운_점과의_거리[i] == Double.MAX_VALUE) { 해당_점에서_가장_가까운_점과의_거리[i] = 0; } if(가장_먼_거리_즉_결과 < 해당_점에서_가장_가까운_점과의_거리[i]) { 가장_먼_거리_즉_결과 = 해당_점에서_가장_가까운_점과의_거리[i]; } } System.out.println(String.format("%.2f", Math.sqrt(가장_먼_거리_즉_결과))); } in.close(); } } 13년 전
2개의 댓글이 있습니다. Baek 어디서 문제가 있을까요1? ㅠㅠ 13년 전 link Baek 제길... 하나부터 열까지 다 문제네요... 이전 과정을 보지 않는 것도 문제고.. 아으 13년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
Baek
안녕하세요~ 남극 기지를 풀고 있는데요~
알고리즘은 일단 맞는것 같습니다.(풀고 나서 인터넷 뒤져보니 나오더군요)
다른점이 있다면 인터넷에서 찾은것은 각 기지들의 모든 거리를 저장하여 트리를 구성한 후
각 기지에서 가장 근접한 기지의 거리들 중, 가장 긴 거리를 찾고 있는거 같구요
제가 작성한 것은 각 기지에서 모든 기지의 거리를 구할 때, 각 기지에서 가장 가까운 기지의 거리만 들고 있다가, (트리 구성 안함)
그 중에서 가장 긴 거리를 출력했거든요...
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static long MAX = 1000;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
}
13년 전