남극 기지 질문입니다! 제 생각에는 맞는거 같은데요... ㅠㅠ

  • Baek
    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
    Baek

    어디서 문제가 있을까요1? ㅠㅠ


    13년 전 link
  • Baek
    Baek

    제길... 하나부터 열까지 다 문제네요... 이전 과정을 보지 않는 것도 문제고.. 아으


    13년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.