BOOKSTORE

  • Sehee
    Sehee

    안녕하세요? ALGOSPOT를 시작한지 아직 1주일이 안된 학생입니다 ㅎㅎ

    다름이아니라 제가 이번에 BOOKSTORE 문제를 푸는데 계속 시간초가라고 하네요... for문이 돌아가는 횟수를 줄여야 할것 같은데... 지금 계속 고민중인데 딱히 좋은 방법이 안떠올라서요 ㅠㅠ

    조언좀 부탁드립니다~!

    import java.util.*;
    
    public class Main {
    
        public static void main(String[] args) {
    
            int t, total[], book[], price[], i=0, n, m, j, k=0, p=0;
            Scanner sc = new Scanner(System.in);
    
            t = sc.nextInt();
    
            for(i=0; i<t; i++){
                n = sc.nextInt();
                m = sc.nextInt();
    
                total = new int[m];
                book = new int[n];
                price = new int[m*n*2];
    
                for(j=0; j<m*n*2; j+=2){
                    price[j] = sc.nextInt();
                    price[j+1] = sc.nextInt();
                    p = price[j]-price[j+1];
                    total[k] = total[k]+p;
                    if(k==m-1)
                        k=0;
                    else
                        k++;
                }
    
    
    
                Arrays.sort(total);
    
                System.out.println(total[0]);
            }
    
    
        }
    
    }
    

    12년 전
3개의 댓글이 있습니다.
  • JongMan
    JongMan

    딱히 시간이 오래 걸릴 것 같은 코드는 아니라 (Scanner가 굉장히 느려서 여기에서 시간을 많이 잡아먹는 것 같습니다) 시간 제한을 조금 늘리고 확인해 보니 3.4초 정도 걸리네요. 해당 문제 시간 제한을 5초로 상향 조정했습니다. ^^;


    12년 전 link
  • Kureyo
    Kureyo

    자바를 몰라서 잘 모르지만 Scanner가 엄청 느린가보네요...ㅜㅜ


    12년 전 link
  • Sehee
    Sehee

    JongMan님 그랬군요~ 감사합니다 ㅎㅎ Kureyo님.. 그러게요.. 저는 주로 Scanner를 쓰는데 어떤 글에서도 이게 느리다는 내용을 본거같은데.. 다른거 생각해봐야겠어요 ㅠㅠ


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