입력받는 구문만 넣었는데 시간초과가 나와요..(java)

  • congbab
    congbab

    안녕하세요.
    밑에 코드로 돌려보니 시간 초과가 나오는데요.
    입력 받는 내용빼고는 없는데 왜 시간 초과가 나올까요;; 문제이름은 운송문제(MOVE)입니다.
    MOVE

    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Scanner;
    
    
    public class Main {
    
      /**
       * @param args
       */
      static int cityNum;
      static int roadNum;
      static int city[] = new int[1002];
      static HashMap<Integer, ArrayList<road>> roadList;
      public static void main(String[] args) {
        // TODO Auto-generated method stub
          Scanner sc = new Scanner(System.in);
          int caseNum = sc.nextInt();
          roadList = new HashMap<Integer, ArrayList<road>>();
          for(int i = 0; i < caseNum; i++){
            cityNum = sc.nextInt();
            roadNum = sc.nextInt();
            int c1,c2,time;
            for(int k = 0; k < roadNum; k++){
              c1 = sc.nextInt();
              c2 = sc.nextInt();
              time = sc.nextInt();
    
            }
    
            System.out.println(0);
          }
    
      }
    
      static class road{
        public int city;
        public int time;
        road(int c, int t){
          city = c;
          time = t;
        }
      }
    
    }
    

    10년 전
3개의 댓글이 있습니다.
  • Being
    Being

    데이터가 무지막지하게 큰데요, Scanner가 워낙 느립니다 ㅠ 직접 (StringTokenizer 등으로) 토크나이징하시면 훨씬 빠릅니다. ㅠㅠ


    10년 전 link
  • Being
    Being

    stackoverflow 에 올라온 이 글을 보시면 도움이 될 것 같습니다. 안드로이드로 올라온 질문이지만 일반적으로 잘 통용될 수 있는 내용입니다.


    10년 전 link
  • congbab
    congbab

    보통 java로 짜고 시간초과 나오면 c++로 입출력 부분만 바꿔서 제출하곤 했는데 Scanner가 문제였군요... 감사합니다.


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