[NOTE] 왜 900ms나 걸릴까요?

  • gwpark
    gwpark
    import java.io.*;
    
    public class Main {
        static BufferedReader stdin
                = new BufferedReader(new InputStreamReader(System.in));
    
        public static void main(String[] args) throws Exception {
            String[] tmp = stdin.readLine().split(" ");
    
            int[] tone = new int[8]; 
            for(int i = 0; i < 8; i++)
                tone[i] = Integer.parseInt(tmp[i]);
    
            boolean isAscending  = true;
            boolean isDescending = true;
    
            for(int i = 0; i < 7; i++) {
                if(tone[i] > tone[i + 1])
                    isAscending  = false;
                else
                    isDescending = false;
            }
    
            System.out.println(isAscending?  "ascending" :
                               isDescending? "descending" :
                                             "mixed");
        }
    }
    

    100ms도 채 안 걸릴줄 알았는데
    judge가 이 코드의 수행 시간이 900ms라더군요...
    이 코드 어느 부분에서 900ms라는 시간이 걸리는 것일까요??


    5년 전
8개의 댓글이 있습니다.
  • Being
    Being

    출력이나 계산 부분이 오래걸릴리는 없으니 입력이 문제지요. 자바에서 큰 입력 데이터를 처리하면 느려지기 십상이라 신경을 써야 합니다. 문제를 해결하신 뒤에는 그 문제의 통계 페이지에서 다른 분들의 소스 코드를 읽어 보실 수 있는데요, 자바로 해결하신 다른 분들의 답안을 참고해 보시는 건 어떨까요? :)


    5년 전 link
  • gwpark
    gwpark

    헉...
    다른 분들의 답안을 볼 수 있는거였군요.................
    감사합니다.


    5년 전 link
  • gwpark
    gwpark

    답안번호 105102는 147ms 나왔다고 기록되어 있는데
    제가 그대로 복사+붙여넣기 했더니 이번엔 아예 시간초과가 나오네요.
    (제한시간 1000ms)


    5년 전 link
  • gwpark
    gwpark

    코드 외적인 부분에서 딜레이가 생기는 것 같네요.
    아니면 judge가 일부러 딜레이를 잡고 인풋을 넣는 걸까요?


    5년 전 link
  • JongMan
    JongMan

    아마 JVM이 시작하는데 걸리는 시간일 겁니다. -_-; 채점 서버는 VM이 시작하는 데 걸리는 시간이랑 실제 프로그램이 수행되는 데 걸리는 시간을 구분할 수가 없어서요.


    5년 전 link
  • JongMan
    JongMan

    147ms => 시간초과는 좀 이상하네요 그런데..


    5년 전 link
  • gwpark
    gwpark

    JVM 감안해도 해당 문제가 좀 이상하게 오래걸리는 것 같아요...


    5년 전 link
  • Being
    Being

    그러게요, 좀 이상하네요 ㅎㅎ


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